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学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
翻译整理的jQuery使用查询手册
Mar 07 Javascript
js实现简单模态窗口,背景灰显
Nov 14 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
js操作数组函数实例小结
Dec 10 Javascript
javascript中href和replace的比较(详解)
Nov 25 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
Oct 15 Javascript
node实现mock-plugin中间件的方法
Dec 25 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
前端如何实现动画过渡效果
Feb 05 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关键特性之命名空间实例详解
2017/05/06 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python生成随机数的方法
2014/01/14 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
服务之星事迹材料
2014/05/03 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
发布会邀请函
2015/01/31 职场文书
公司周年庆典致辞
2015/07/30 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Python if else条件语句形式详解
2022/03/24 Python
Linux安装Docker详细教程
2022/07/07 Servers
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技