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 相关文章推荐
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
JavaScript栏目列表隐藏/显示简单实现
Apr 03 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
基于jQuery实现美观且实用的倒计时实例代码
Dec 30 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
Jquery获取当前城市的天气信息
Aug 05 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
基于JS判断对象是否是数组
Jan 10 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
详解JavaScript类型判断的四种方法
Oct 21 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
python实现自动发送邮件
2018/06/20 Python
Python3爬虫学习入门教程
2018/12/11 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
印度网上药店:1mg
2017/10/13 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
新学期决心书
2014/03/11 职场文书
超市促销活动总结
2014/07/01 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js