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

最近在用Angular2,需要有一个上传文件功能,但是又不想用库,所以直接用原生的input file 标签

rush:xhtml;">

然后想获取上传内容,于是先想了个愚蠢的方法,先通过id获取到这个input标签,然后再获取其中上传内容

rush:js;"> const uploadsFile = document.getElementById(name).files[0];

结果就报错了。然后看提示说HTMLElement没有files方法。于是在es6里找了下有files属性的类型,是HTMLInputElement类型。于是就强制它转换成这个类型。

rush:js;"> const uploadsFile=document.getElementById(name).files[0];

结果还是不行,最后改成了先转换类型再调用属性就可以了。

rush:js;"> const uploadsFile = document.getElementById(name); const file = uploadsFile.files[0];

后面发现这种方式好像有点愚蠢,于是换了一个方法,用angular2里的$event来获取输入内容,里面也包括选择上传文件

rush:xhtml;">

选择的文件在event.target.files里

rush:js;"> private getUpload(obj,e) { if (e.target.files[0]) { const file = e.target.files[0]; obj.file = file; } }

接着就可以把它放到formdata里了

rush:js;"> const formData = new FormData(); formData.append('file',this.upload.file);

最后清空选择上传内容可以用

rush:js;"> let upload = document.querySelector(selectorName); upload.value = null;

不知道有没有更好的方法,欢迎讨论和指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...