检查node.js中的实际文件types

我想阻止人们通过向我的头像上传端点添加jpg扩展来上传电影文件或shell脚本。 我没有编写后端长时间上传脚本,但我记得PHP能够告诉我实际的文件types,而不仅仅是基于文件扩展名的types。 我也可以单纯地检查这个前端JS。 或者在Java中有http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType%28java.nio.file.Path%29

这个问题是在香草节点,并使用一堆mime相关模块,包括mmmagic ,只是基于文件扩展名返回MIMEtypes。 例如,我删除了gif文件的gif扩展名,并将其改为txt ,Node和mmmagic只是返回text/plain

在Java中,我使用了Tika ,这是一个MIMEtypes检测工具。 原来,有nodejs桥, node-tika 。

使用

 npm install node-tika 

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