【问题标题】:Check actual file type in node.js检查 node.js 中的实际文件类型
【发布时间】:2015-03-23 22:26:33
【问题描述】:

我想阻止人们上传电影文件或 shell 脚本,只需将 jpg 扩展名添加到我的头像上传端点。我很久没有写后端来上传脚本了,但我记得 PHP 能够告诉我 actual 文件类型,而不仅仅是基于文件扩展名的类型。我也可以纯粹在前端 JS 上检查这个。或者在Java中有http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType%28java.nio.file.Path%29

问题出在 vanilla Node 中,使用一堆 mime 相关模块,包括 mmmagic,只是根据文件扩展名返回 mime 类型。例如,我删除了 gif 文件上的 gif 扩展名并将其更改为 txt,Node 和 mmmagic 都只返回 text/plain

【问题讨论】:

    标签: javascript node.js security mime file-type


    【解决方案1】:

    在 Java 中,我使用的是 Tika,这是一个 mime 类型检测工具。原来,有 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'.
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 2011-04-03
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多