文件扩展名到 MIME 类型

kha*_*han 5 javascript jquery dojo mime-types

只使用 JavaScript 和像 dojo/jQuery 这样的框架......

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

假设我输入字符串“something.pdf”,我想显示一个提示“application/pdf”

或“something.html”显示“text/html”?

ale*_*lex 7

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

(function() {

    var extToMimes = {
       'img': 'image/jpeg',
       'png': 'image/png',
       ...
    }

    window.getMimeByExt = function(ext) {
        if (extToMimes.hasOwnProperty(ext)) {
           return extToMimes[ext];
        }
        return false;
    }

})();
Run Code Online (Sandbox Code Playgroud)

js小提琴

false如果它在您的映射中不存在,它将返回。如果你愿意,你可以只返回extToMimes[ext]undefined如果它不存在,它将给出。它也不会意外地将东西放到原型链上

如果它是一个文件,也可以选择访问它input

var mime = $('input[type="file"]').prop('files')[0].file;
Run Code Online (Sandbox Code Playgroud)

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


小智 6

你可以使用node-mime

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