假设我有一个没有扩展名的文件,例如:images/cat_photo
在Node.js中有没有提取给定文件MIME类型的方法? 在这种情况下,模块mime无法使用。
是的,有一个叫做mmmagic的模块。它通过分析文件的内容来最大程度地猜测文件的MIME类型。
代码将会像这样(取自示例):
var mmm = require('mmmagic'),
var magic = new mmm.Magic(mmm.MAGIC_MIME_TYPE);
magic.detectFile('node_modules/mmmagic/build/Release/magic.node', function(err, result) {
if (err) throw err;
console.log(result);
});
请记住,猜测 MIME 类型可能并不总是得出正确答案。
随意在维基页面上阅读类型标识。
/**
* Get the file mime type from path. No extension required.
* @param filePath Path to the file
*/
function getMimeFromPath(filePath) {
const execSync = require('child_process').execSync;
const mimeType = execSync('file --mime-type -b "' + filePath + '"').toString();
return mimeType.trim();
}
String.prototype.split()
,然后取数组的最后一个元素,它将是类型。const mimeType = fileName.split('.').pop()
或者
const type = mimeType.split('/')
那么type [1]
将具有扩展名