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 相关文章推荐
匹配任意字符的正则表达式写法
Apr 29 Javascript
js下将字符串当函数执行的方法
Jul 13 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
解决vue打包之后静态资源图片失效的问题
Feb 21 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
JavaScript 中的无穷数(Infinity)详解
Feb 13 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
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
php提高网站效率的技巧
2015/09/29 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python 装饰器使用详解
2017/07/29 Python
pygame实现打字游戏
2021/02/19 Python
Python中itertools的用法详解
2020/02/07 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
信息技术教学反思
2014/02/12 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
优秀教师先进材料
2014/12/16 职场文书
学校捐款活动总结
2015/05/09 职场文书
高三教师工作总结2015
2015/07/21 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers