dojo MIME类型的文件扩展名

mitkmikd  于 2022-12-16  发布在  Dojo
关注(0)|答案(3)|浏览(177)

仅使用JavaScript和框架(如dojo/jQuery)...
有没有办法找到特定文件扩展名的内容类型?
假设我键入字符串“something.pdf”,我希望显示一个提示“application/pdf”
还是“something.html”显示“文本/html”

jexiocij

jexiocij1#

您可以使用node-mime

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

nwlls2ji2#

我认为您需要自己维护Map(您 * 可以 * 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不存在于你的Map中,它将返回false,如果你愿意,你可以只返回extToMimes[ext],如果undefined不存在,它将给予won't accidentally get things up the prototype chain
如果它是一个input文件,也有访问它的选项。

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

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

9rygscc1

9rygscc13#

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

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

相关问题