只使用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