源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Angular2里获取(input file)上传文件的内容的方法

  • 时间:2020-09-19 10:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Angular2里获取(input file)上传文件的内容的方法
最近在用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;
不知道有没有更好的方法,欢迎讨论和指正。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部