Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查node.js中的实际文件类型_Javascript_Node.js_Security_Mime_File Type - Fatal编程技术网

Javascript 检查node.js中的实际文件类型

Javascript 检查node.js中的实际文件类型,javascript,node.js,security,mime,file-type,Javascript,Node.js,Security,Mime,File Type,我想阻止人们上传电影文件或shell脚本,只需在我的头像上传端点添加jpg扩展名。我已经很长时间没有编写后端来上传脚本了,但我记得PHP能够告诉我实际的文件类型,而不仅仅是基于文件扩展名的类型。我也可以在前端JS上检查这一点。或者在Java中有 问题是在vanilla节点中,使用一系列与mime相关的模块(包括mmmagic)只是基于文件扩展名返回mime类型。例如,我删除了gif文件上的gif扩展名,并将其更改为txt,节点和mmmagic都只返回我使用的Java中的text/plain,这是

我想阻止人们上传电影文件或shell脚本,只需在我的头像上传端点添加
jpg
扩展名。我已经很长时间没有编写后端来上传脚本了,但我记得PHP能够告诉我实际的文件类型,而不仅仅是基于文件扩展名的类型。我也可以在前端JS上检查这一点。或者在Java中有

问题是在vanilla节点中,使用一系列与mime相关的模块(包括
mmmagic
)只是基于文件扩展名返回mime类型。例如,我删除了gif文件上的
gif
扩展名,并将其更改为
txt
,节点和
mmmagic
都只返回我使用的Java中的
text/plain
,这是一个mime类型检测工具。事实证明,它有一个nodejs桥

使用

npm install node-tika

var tika = require('tika');

tika.type('test/data/file.pdf', function(err, contentType) {
  console.log(contentType); // Logs 'application/pdf'.
});