文件扩展名为 MIME 类型

File name extension to MIME type

本文关键字:类型 MIME 扩展名 文件      更新时间:2023-09-26

仅使用 JavaScript 和框架,如 dojo/jQuery...

有没有办法找到特定文件扩展名的内容类型?

假设我输入字符串"something.pdf",我想显示一个警报,上面写着"应用程序/pdf">

还是"某物.html"显示"文本/HTML"?

你可以使用node-mime

<script src="https://wzrd.in/standalone/mime@latest"></script>
<script>
    mime.getType("something.pdf"); // etc.
<script>

我认为您需要自己维护映射(您可以XHR一个物理文件并获取它,但我怀疑您想这样做(...

(function() {
    var extToMimes = {
       'img': 'image/jpeg',
       'png': 'image/png',
       ...
    }
    window.getMimeByExt = function(ext) {
        if (extToMimes.hasOwnProperty(ext)) {
           return extToMimes[ext];
        }
        return false;
    }
})();

jsFiddle。

如果映射中不存在false,这将返回它。如果您愿意,您可以返回 extToMimes[ext] ,如果它不存在,它将提供undefined。它也不会意外地将东西带到原型链上。

如果它是 文件input .

var mime = $('input[type="file"]').prop('files')[0].file;

请记住,mime 类型的扩展名并不能保证实际文件本身;您需要解析它在服务器端以确定它到底是什么类型的文件。

https://wzrd.in/standalone/mime@latest 目前不可用,因此您必须使用:

<script>
   import mime  from 'https://cdn.skypack.dev/mime';
   console.log(  mime.getType("file.jpg"));
</script>