因此,所有浏览器都有不同的MIME类型列表也就不足为奇了。
查看此pen的嵌入式屏幕截图。

除了Chrome之外,所有的浏览器都提供了一个type设置为audio/mpeg的File对象。
在Chrome中,type是一个空字符串''。
这使得客户端验证哪些文件类型被接受是一件很痛苦的事情。(特别是在允许完全“开放”的上下文中,比如任何video/*或audio/*文件。
当File对象在浏览器中显示为空时,我希望对它进行多填充。这将允许我更一致地验证文件是否属于允许的类型。
但是,File上的type属性是只读的。所以它不能修改。
有没有办法绕过这个限制?
例如,创建File对象的副本并重写type
发布于 2017-08-25 16:18:15
我最终用下面的方法解决了这个问题。
let polyfillMimetype
for (let i = 0; i < $newFiles.length; i++) {
if (!$newFiles[i].type) {
polyfillMimetype = mimetype.lookup($newFiles[i].name)
$newFiles[i] = new window.File([$newFiles[i]], $newFiles[i].name, { type: polyfillMimetype })
}
}https://stackoverflow.com/questions/45794284
复制相似问题