1、背景描述:
最近在项目中发现在Google浏览器中点击 input file上传按钮时反应很慢,需要等待3-5秒种之后才能弹出选择文件的对话框。
2、解决方案:
测试发现当写成:<input type="file" accept="image/*"> 时。要等待很长时间
如果写成<input type="file" accept="image/jpeg,image/gif,image/png">时。就很快
写成<input type="file" accept="image/jpeg,image/gif,image/png,application/zip">也没问题。
但是加上rar格式,就会很慢
网上查了一些资料介绍原因应该是这样的:
新版chrome在点击input file时,如果你仅仅上传图片,chrome是不会检查这些图片是否有危害性的,
但是如果你的input file支持zip、apk等类型的文件时,chrome会将这些文件的特征信息提交到google的海外服务器进行分析比对,
以提醒用户文件安全与否,这本来是一件好事,但是众所周知,google的服务在国内是基本被QIANG了,国内无法访问。
解决方法:
chrome设置里去掉“保护您和您的设备不受危险网站的侵害”前面的勾即可。禁止google向海外服务器提交文件的特征信息就可以了。
不过作为提供服务方不可能让客户自己去修改设置。所以这里建议就是不用accept。类型是否合法的判断交给点击上传的时候再做