MIME 类型的文件扩展名

新手上路,请多包涵

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

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

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

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

原文由 khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

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

 (function() {

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

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

})();

js小提琴

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

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

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

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

原文由 alex 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以使用 节点 mime

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

原文由 Ahmed elshiekh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题