我读过这和这的问题,这似乎表明文件MIME类型可以在客户端使用JavaScript检查。现在,我知道真正的验证仍然必须在服务器端完成。我想执行客户端检查,以避免不必要的服务器资源浪费。
为了测试这是否可以在客户端完成,我将JPEG
测试文件的扩展名更改为.png
,并选择该文件进行上传。在发送文件之前,我使用JavaScript控制台查询文件对象:
document.getElementsByTagName('input')[0].files[0];
这是我在Chrome 28.0上得到的:
File {webkitRelativePath: "", lastModifiedDate: Tue Oct 16 2012 10:00:00 GMT+0000 (UTC),名称:" test.png",类型:" image/png",大小: 500055年…}< / p >
它显示type为image/png
,这似乎表明检查是基于文件扩展名而不是MIME类型完成的。我尝试了火狐22.0,它给了我同样的结果。但是根据W3C规范, MIME嗅探应该被实现。
我是正确的说,没有办法检查MIME类型与JavaScript的时刻?还是我遗漏了什么?