国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中文件上傳API詳解

2019-11-20 10:18:12
字體:
來源:轉載
供稿:網友

對于Web程序員來說,在網頁上處理文件上傳,總是一件很麻煩的事情。在過去,我們不能夠通過拖拽上傳圖片,也沒有復雜Ajax上傳技術,很少處理多文件批量上傳。我們也無法獲取上傳過程中的信息,除非上傳完成后從服務器端獲得。有時候,等你上傳完畢后才發現上傳的文件不合適!

如今,HTML5的革命,現代瀏覽器的誕生,JavaScript的升級,這些給我們提供了使用Javascript和input[type=file]元素獲取上傳文件過程信息的能力。

下面就來看看這些上傳文件API是如何使用的!

訪問要上傳的文件列表信息

如果要獲得所有input[type=file]里要上傳的文件列表,你需要使用files屬性:

// Assuming <input type="file" id="upload" multiple>var uploadInput = document.getElementById('upload');uploadInput.addEventListener('change', function() { console.log(uploadInput.files) // File listing!});

不幸的是,這個FileList并沒有一個叫做forEach的方法,所以我們只能使用老式的循環技巧對FileList進行循環操作:

for (var i = 0, fileCount = uploadInput.files.length; i < fileCount; i++) { console.log(files[i]);}

很重要的一點,FileList里是有一個length屬性的。

獲取單個上傳文件的信息

FileList里的每個文件對象里都保存著大量的關于這個文件的信息,包括文件的體積大小,文件MIME類型,最后修改時間,文件名稱等:

{ lastModified: 1428005315000, lastModifiedDate: Thu Apr 02 2015 15:08:35 GMT-0500 (CDT), name: "profile.pdf", size: 135568, type: "application/pdf", webkitRelativePath: ""}

這些基礎信息對我們來說最大的用處就是,我們可以在上傳文件之前校驗它們。例如,你可以校驗文件的類型和體積大小:

var maxAllowedSize = 500000;for (var i = 0, fileCount = uploadInput.files.length, totalSize = 0; i < fileCount; i++) { totalSize += files[i].size; if(totalSize > maxAllowedSize) { // Notify the user that their file(s) are too large } if(files[i].type != 'application/pdf') { // Notify of invalid file type for file in question }}

如果用戶上傳的文件的體積太大,超過了允許范圍,或上傳的類型不對,你可以阻止用戶上傳,然后給予他們必要的提示,是什么原因不能上傳成功。

以上就是對文件上傳API做的簡單介紹,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 宣汉县| 堆龙德庆县| 砀山县| 陕西省| 孟州市| 木里| 安岳县| 通道| 康马县| 威宁| 平乡县| 肇源县| 亚东县| 南丹县| 宾川县| 平舆县| 方城县| 祁东县| 禹州市| 湾仔区| 南华县| 乐山市| 莆田市| 北辰区| 晴隆县| 江西省| 恩平市| 荃湾区| 乐都县| 河西区| 峨山| 花垣县| 高州市| 板桥市| 巴南区| 平遥县| 龙游县| 古丈县| 古丈县| 田东县|