Angular2里获取(input file)上传文件的内容的方法


Posted in Javascript onSeptember 05, 2017

最近在用Angular2,需要有一个上传文件的功能,但是又不想用库,所以直接用原生的input file 标签。

<input type="file" id="newUpload" >

然后想获取上传的内容,于是先想了个愚蠢的方法,先通过id获取到这个input标签,然后再获取其中上传的内容

const uploadsFile = document.getElementById(name).files[0];

结果就报错了。然后看提示说HTMLElement没有files方法。于是在es6里找了下有files属性的类型,是HTMLInputElement类型。于是就强制它转换成这个类型。

const uploadsFile=<HTMLInputElement>document.getElementById(name).files[0];

结果还是不行,最后改成了先转换类型再调用属性就可以了。

const uploadsFile = <HTMLInputElement>document.getElementById(name);
  const file = uploadsFile.files[0];

后面发现这种方式好像有点愚蠢,于是换了一个方法,用angular2里的$event来获取输入内容,里面也包括选择上传的文件。

<input type="file" id="newUpload" (change)="getUpload(newUpload, $event)" >

选择的文件在event.target.files里

private getUpload(obj, e) {
  if (e.target.files[0]) {
   const file = e.target.files[0];
   obj.file = file;
  }
 }

接着就可以把它放到formdata里了

const formData = new FormData();
  formData.append('file', this.upload.file);

最后清空选择上传的内容可以用

let upload = <HTMLInputElement>document.querySelector(selectorName);
  upload.value = null;

不知道有没有更好的方法,欢迎讨论和指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype Object对象 学习
Jul 12 Javascript
javascript 通用简单的table选项卡实现
May 07 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
js实现YouKu的漂亮搜索框效果
Aug 19 Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
原生js实现可拖动的登录框效果
Jan 21 Javascript
vue时间格式化实例代码
Jun 13 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
浅谈angular4生命周期钩子
Sep 05 #Javascript
webpack踩坑之路图片的路径与打包
Sep 05 #Javascript
js实现鼠标跟随运动效果
Aug 02 #Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 #Javascript
javascript观察者模式实现自动刷新效果
Sep 05 #Javascript
js使用generator函数同步执行ajax任务
Sep 05 #Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 #Javascript
You might like
简单易用的计数器(数据库)
2006/10/09 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
IE下js调试工具Companion.JS
2010/10/15 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python线性回归实战分析
2018/02/01 Python
Python常用特殊方法实例总结
2019/03/22 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
消防安全责任书范本
2014/04/15 职场文书
治超工作实施方案
2014/05/04 职场文书
师德先进个人材料
2014/12/20 职场文书
休学证明范本
2015/06/19 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript