如何修改文件的类型属性?

时间:2017-08-21 10:00:01

标签: javascript validation mime-types fileapi

因此,所有浏览器都有不同的已识别MIME类型列表也就不足为奇了。

请参阅此pen的嵌入式屏幕截图。

Browser Comparison

除Chrome以外的所有浏览器都提供了File个对象,type设置为audio/mpeg

对于Chrome,type是一个空字符串''

这使得客户端验证接受哪些文件类型很难处理。 (特别是在允许的内容完全“开放”的情况下,请说出任何video/*audio/*文件。

我希望在type对象上填充File,当它在浏览器中显示为空白时。这将允许我更一致地验证文件是否属于允许的类型。

但是,type上的File属性是只读的。所以它无法修改。

有没有办法绕过这个限制?

比如创建File对象的副本并覆盖type

1 个答案:

答案 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 })
  }
}