时间:2021-05-28
最近在用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;不知道有没有更好的方法,欢迎讨论和指正。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
我们知道在angular2中ts文件支持js代码,为什么用document.getElementById没法获取元素节点呢?其实在angular2中先加载ts文
组件之间的共享可以有好几种方式父->子input方式import{Component,Input}from'angular2/core';@Component(
前言本文主要介绍的是关于Angular2父子组件之间数据传递之局部变量获取子组件其他成员的相关内容,话不多说,来看看详细介绍:通过@Input和@Output可
Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uploader。ng2-uploader是一个轻便的
前言本文主要给大家介绍了关于Angular.js文件上传控件ng-file-upload结合springMVC使用的相关内容,对于Angular.js文件上传控