最近在用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;
不知道有没有更好的方法,欢迎讨论和指正。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。