确定Express.js服务器的正确文件类型

时间:2014-05-14 14:35:55

标签: windows node.js mime

我需要确定我在Express.js服务器上上传的文件的类型。有办法检查扩展,甚至检查这样的事情:

if(req.files.file.type !== "application/pdf") {
        res.set('Content-Type', 'text/html');
        return res.send({errormessage: "Only PDF accepted."});
    }

这里的问题是在客户端更改文件扩展名,很容易欺骗这个检查。我认为只有检查是在Express文件系统上下载文件,然后对它进行某种检查。 我已经为node.js尝试了mime库,但它也依赖于内容类型,因此也很容易被愚弄。我见过另一个图书馆:     https://github.com/mscdex/mmmagic

但似乎它不是Windows版本。我的服务器是Windows 2012机器。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

mmmagic应该适用于节点支持的所有平台。如果您使用的是Windows,则必须拥有正确的构建环境:

  • Python 2.7.x
  • Visual Studio / C ++ 2010+(如果使用Express版,如果要编译64位,则需要安装Windows SDK)。如果您使用VS 2012+,请确保下载“for Windows Desktop”版本。