因此,所有浏览器都有不同的已识别MIME类型列表也就不足为奇了。
请参阅此pen的嵌入式屏幕截图。
除Chrome以外的所有浏览器都提供了File
个对象,type
设置为audio/mpeg
。
对于Chrome,type
是一个空字符串''
。
这使得客户端验证接受哪些文件类型很难处理。 (特别是在允许的内容完全“开放”的情况下,请说出任何video/*
或audio/*
文件。
我希望在type
对象上填充File
,当它在浏览器中显示为空白时。这将允许我更一致地验证文件是否属于允许的类型。
但是,type
上的File
属性是只读的。所以它无法修改。
有没有办法绕过这个限制?
比如创建File
对象的副本并覆盖type
?
答案 0 :(得分:0)
我最终解决了以下问题。
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 })
}
}