鉴于我有一个没有附加扩展名的文件,例如:images/cat_photo
Node.js中是否有方法提取给定文件的MIME类型?在这种情况下,模块mime不起作用。
答案 0 :(得分:3)
是的,有一个名为mmmagic的模块。它最好通过分析文件的内容来猜测文件的MIME。
代码将如下所示(取自example):
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类型可能并不总能导致正确答案。
随时阅读wiki page上的类型签名。
答案 1 :(得分:0)
另一种可能性是使用exec或execSync函数在Linux SO上运行“文件”命令:
// webpack.config.js
module.exports = {
// ...the rest of your config
resolve: {
alias: {
'react-native$': 'react-native-web'
}
}
}
但是,并不是更好的解决方案,因为它仅适用于Linux。要在Windows中运行此程序,请查看以下超级用户问题: https://superuser.com/questions/272338/what-is-the-equivalent-to-the-linux-file-command-for-windows
问候。
答案 2 :(得分:-1)
您可以简单地使用String.prototype.split()
,然后使用数组的最后一个元素作为类型。
您可以使用pop方法获取数组中的最后一个元素:
const mimeType = fileName.split('.').pop()
或
const type = mimeType.split('/')
然后type[1]
将具有扩展名