只使用JavaScript和框架如dojo/jQuery ...文件扩展名为MIME类型
有没有办法找到特定文件扩展名的内容类型?
说,如果我在字符串“something.pdf”型,我想证明说“应用程序/ PDF”
或“something.html”秀“text/html的”警报?
只使用JavaScript和框架如dojo/jQuery ...文件扩展名为MIME类型
有没有办法找到特定文件扩展名的内容类型?
说,如果我在字符串“something.pdf”型,我想证明说“应用程序/ PDF”
或“something.html”秀“text/html的”警报?
我认为你需要自己保持的映射(你能 XHR的物理文件,并得到它,但我怀疑你想这样做)......
(function() {
var extToMimes = {
'img': 'image/jpeg',
'png': 'image/png',
...
}
window.getMimeByExt = function(ext) {
if (extToMimes.hasOwnProperty(ext)) {
return extToMimes[ext];
}
return false;
}
})();
如果映射中不存在,将返回false
。如果你喜欢,你可以返回extToMimes[ext]
,如果它不存在undefined
将会返回。它也won't accidentally get things up the prototype chain。
如果它是一个文件input
,还可以选择访问它。
var mime = $('input[type="file"]').prop('files')[0].file;
请记住,MIME类型的扩展不能保证实际的文件本身;你需要解析它的服务器端来确定它真的是什么类型的文件。
可以使用node-mime
<script src="https://wzrd.in/standalone/[email protected]"></script>
<script>
mime.getType("something.pdf"); // etc.
<script>
只是想知道,如果这个答案仍然是正确的看到,因为它是4岁?我们是否仍然需要自己维护映射? – Marklar 2015-07-19 22:47:34
@Marklar如果你没有要上传的文件,但只是一个扩展名,我认为你需要一个映射。但是,似乎有人正在维护一个[这里](https://github.com/rsdoiel/mimetype-js)。 – alex 2015-07-21 01:19:52
如果你有一个文件上传?你使用XHR吗? – Marklar 2015-07-21 02:19:34