Node.js - 文件系统获取文件类型

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (130)

我需要借助node.js来获取文件的文件类型以设置内容类型。我知道我可以很容易地检查文件扩展名,但我也有没有扩展名的文件,应该有内容类型image/pngtext/htmlaso。

这是我的代码(我知道它没有多大意义,但这是我需要的基础):

var http = require("http"),
    fs = require("fs");
http.createServer(function(req, res) {
    var data = "";
    try {
        /*
         * Do not use this code!
         * It's not async and it has a security issue.
         * The code style is also bad.
         */
        data = fs.readFileSync("/home/path/to/folder" + req.url);
        var type = "???"; // how to get the file type??
        res.writeHead(200, {"Content-Type": type});
    } catch(e) {
        data = "404 Not Found";
        res.writeHead(404, {"Content-Type": "text/plain"});
    }
    res.write(data);
    res.end();
}).listen(7000);

我还没有在API中找到这样的功能,所以如果有人能告诉我如何去做,我会很高兴。

提问于
用户回答回答于
用户回答回答于

有一个用于查找MIME类型的助手库。https://github.com/broofa/not-MIME

var mime = require('mime');

mime.lookup('/path/to/file.txt');         // => 'text/plain'

但是它仍然使用扩展来查找

扫码关注云+社区

领取腾讯云代金券