上传文件响应慢的处理方法


input[file]标签的 accept 属性可用于指定上传文件的 MIME 类型。
例如,想要实现默认上传图片文件的代码,代码可如下:

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

效果如下图所示,默认过滤掉所有非图片文件:


 
但是!
这段代码在 Chrome 和 Safar i等 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"
accept可接受的属性(部分):
后缀名 MIME名称 *.3gpp      audio/3gpp, video/3gpp *.ac3       audio/ac3 *.asf       allpication/vnd.ms-asf *.au        audio/basic *.css       text/css *.csv       text/csv *.doc       application/msword *.dot       application/msword *.dtd       application/xml-dtd *.dwg       image/vnd.dwg *.dxf       image/vnd.dxf *.gif       image/gif *.htm       text/html *.html      text/html *.jp2       image/jp2 *.jpe       image/jpeg *.jpeg      image/jpeg *.jpg       image/jpeg *.js        text/javascript, application/javascript *.json      application/json *.mp2       audio/mpeg, video/mpeg *.mp3       audio/mpeg *.mp4       audio/mp4, video/mp4 *.mpeg      video/mpeg *.mpg       video/mpeg *.mpp       application/vnd.ms-project *.ogg       application/ogg, audio/ogg *.pdf       application/pdf *.png       image/png *.pot       application/vnd.ms-powerpoint *.pps       application/vnd.ms-powerpoint *.ppt       application/vnd.ms-powerpoint *.rtf       application/rtf, text/rtf *.svf       image/vnd.svf *.tif       image/tiff *.tiff      image/tiff *.txt       text/plain *.wdb       application/vnd.ms-works *.wps       application/vnd.ms-works *.xhtml     application/xhtml+xml *.xlc       application/vnd.ms-excel *.xlm       application/vnd.ms-excel *.xls       application/vnd.ms-excel *.xlt       application/vnd.ms-excel *.xlw       application/vnd.ms-excel *.xml       text/xml, application/xml *.zip       aplication/zip *.xlsx      application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM