Angular2里获取(input file)上传文件的内容的方法
- 作者: 疯子84045784
- 来源: 51数据库
- 2021-09-03
最近在用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;
不知道有没有更好的方法,欢迎讨论和指正。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
热点文章
Angular中响应式表单的三种更新值方法详析
7
Angularjs实现下拉框联动的示例代码
7
详解AngularJS跨页面传值(ui-router)
2
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
3
angular2路由切换改变页面title的示例代码
4
Angular2 组件间通过@Input @Output通讯示例
5
Angularjs中ng-repeat的简单实例
3
AngularJS 中ui-view传参的实例详解
4
浅谈Angular路由守卫
4
详解基于Angular4+ server render(服务端渲染)开发教程
4