1. 程式人生 > >上傳文件響應慢的處理方法

上傳文件響應慢的處理方法

圖片文件 imageview nsh 使用 默認 上傳 修改 作者 orm

input[file]標簽的accept屬性可用於指定上傳文件的MIME類型。
例如,想要實現默認上傳圖片文件的代碼,代碼可如下:

<input type="file" name="file" class="element" accept="image/*">

效果如下圖所示,默認過濾掉所有非圖片文件:

技術分享

但是!

這段代碼在Chrome和Safari等Webkit瀏覽器下卻出現了響應滯慢的問題,可能要等 6~10s 才能彈出文件選擇對話框。簡直不能忍呀。

在IE和Firefox中使用accept="image/*"屬性則沒有發現響應延遲的問題。

於是幾經嘗試後,發現是accept="image/*"

屬性的問題,刪掉它或者將*通配符修改為指定的MIME類型,就可以解決Webkit瀏覽器下的對話框顯示滯慢的問題。

解決辦法如下:

<input type="file" accept="image/gif,image/jpeg,image/jpg,image/png">

accept="image/*"屬性會對每一個文件都遍歷一次所有的"image/*"文件類型,當文件較多時,文件的檢驗時間較長,這可能是Webkit的底層實現的bug。

另外,

accept="audio/*"accept="video/*"屬性 在 Webkit瀏覽器下也會有同樣的響應延遲的問題。同理,通過將*通配符 修改成指定的MIME類型就可解決。

需要註意的是:
當form表單含有file文件類型的話,需要將form表單的屬性加上enctype="multipart/form-data"

技術分享

轉載地址:
作者:風澈vio
鏈接:http://www.jianshu.com/p/8f88a58a8c7c
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

上傳文件響應慢的處理方法