Angular2里獲取(input file)上傳文件的內(nèi)容的方法
最近在用Angular2,需要有一個(gè)上傳文件的功能,但是又不想用庫,所以直接用原生的input file 標(biāo)簽。
<input type="file" id="newUpload" >
然后想獲取上傳的內(nèi)容,于是先想了個(gè)愚蠢的方法,先通過id獲取到這個(gè)input標(biāo)簽,然后再獲取其中上傳的內(nèi)容
const uploadsFile = document.getElementById(name).files[0];
結(jié)果就報(bào)錯(cuò)了。然后看提示說HTMLElement沒有files方法。于是在es6里找了下有files屬性的類型,是HTMLInputElement類型。于是就強(qiáng)制它轉(zhuǎn)換成這個(gè)類型。
const uploadsFile=<HTMLInputElement>document.getElementById(name).files[0];
結(jié)果還是不行,最后改成了先轉(zhuǎn)換類型再調(diào)用屬性就可以了。
const uploadsFile = <HTMLInputElement>document.getElementById(name); const file = uploadsFile.files[0];
后面發(fā)現(xiàn)這種方式好像有點(diǎn)愚蠢,于是換了一個(gè)方法,用angular2里的$event來獲取輸入內(nèi)容,里面也包括選擇上傳的文件。
<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);
最后清空選擇上傳的內(nèi)容可以用
let upload = <HTMLInputElement>document.querySelector(selectorName); upload.value = null;
不知道有沒有更好的方法,歡迎討論和指正。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Angularjs上傳文件組件flowjs功能
- 基于AngularJS的拖拽文件上傳的實(shí)例代碼
- SpringMvc+Angularjs 實(shí)現(xiàn)多文件批量上傳
- Angular2-primeNG文件上傳模塊FileUpload使用詳解
- AngularJS 文件上傳控件 ng-file-upload詳解
- AngularJS+Bootstrap實(shí)現(xiàn)多文件上傳與管理
- 學(xué)習(xí)使用AngularJS文件上傳控件
- AngularJS向后端ASP.NET API控制器上傳文件
- Angular Js文件上傳之form-data
- angularjs客戶端實(shí)現(xiàn)壓縮圖片文件并上傳實(shí)例
相關(guān)文章
AngularJS使用ng-app自動(dòng)加載bootstrap框架問題分析
這篇文章主要介紹了AngularJS使用ng-app自動(dòng)加載bootstrap框架問題,分析了前面文章中所述的ng-app自動(dòng)加載bootstrap出現(xiàn)的錯(cuò)誤原因與相應(yīng)的解決方法,需要的朋友可以參考下2017-01-01
Angular 4中如何顯示內(nèi)容的CSS樣式示例代碼
這篇文章主要給大家介紹了關(guān)于Angular 4中如何顯示內(nèi)容的CSS樣式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
JavaScript框架Angular和React深度對(duì)比
這篇文章主要介紹了JS框架中Angular和React不同和差異,以及兩個(gè)框架的深度對(duì)比介紹。2017-11-11
Angular.js與Bootstrap相結(jié)合實(shí)現(xiàn)表格分頁代碼
最近一直在學(xué)習(xí)angularjs相關(guān)知識(shí),在學(xué)習(xí)過程中寫了一個(gè)小demo,下面把代碼思路分享給大家,感興趣的朋友一起學(xué)習(xí)2016-04-04
angular組件間通訊的實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于angular組件間通訊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用angular組件具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
AngularJS入門(用ng-repeat指令實(shí)現(xiàn)循環(huán)輸出
這篇文章主要介紹了AngularJS入門(用ng-repeat指令實(shí)現(xiàn)循環(huán)輸出,需要的朋友可以參考下2016-05-05
探索angularjs+requirejs全面實(shí)現(xiàn)按需加載的套路
這篇文章主要探索了angularjs+requirejs全面實(shí)現(xiàn)按需加載的套路,圍繞angularjs提供的各種機(jī)制進(jìn)行研究,感興趣的小伙伴們可以參考一下2016-02-02

