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 相关文章推荐
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
Sep 16 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
javascript 利用arguments实现可变长参数
Nov 21 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
vue中使用codemirror的实例详解
Nov 01 Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 Javascript
js 计数排序的实现示例(升级版)
Jan 12 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
Aug 20 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创建PDF中文文档
2006/10/09 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
使用Python神器对付12306变态验证码
2016/01/05 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python文件读写常见用法总结
2019/02/22 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
英语商务邀请函范文
2014/01/16 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
房地产活动策划方案
2014/05/14 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
创业计划书之物流运送
2019/09/17 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python