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 相关文章推荐
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
jQuery实现弹幕效果
Feb 17 Javascript
性能优化之代码优化页面加载速度
Mar 01 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
详解webpack2+React 实例demo
Sep 11 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 Javascript
Vue如何实现验证码输入交互
Dec 07 Vue.js
浅谈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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
php实现word转html的方法
2016/01/22 PHP
javascript代码加载优化方法
2011/01/30 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
保研推荐信
2014/05/09 职场文书
投标承诺书怎么写
2014/05/24 职场文书
优秀班主任申报材料
2014/12/16 职场文书
男方婚前保证书
2015/02/28 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
单位推荐信范文
2015/03/27 职场文书
公司会议开幕词
2016/03/03 职场文书