我需要在node.js的帮助下获取文件的文件类型,以设置内容类型。我知道我可以很容易地检查文件扩展名,但我也有文件没有扩展名,它的内容类型应该是image/png
,text/html
aso。
这是我的代码(我知道它没有多大意义,但这是我需要的基础):
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中找到一个这样的函数,所以如果有人能告诉我怎么做,我会很高兴的。
发布于 2012-05-03 21:06:21
看一看mmmagic module。它是一个libmagic绑定,看起来就是你想要的。
发布于 2012-05-03 21:05:07
有一个帮助器库,用于查找mime类型https://github.com/broofa/node-mime
var mime = require('mime');
mime.getType('/path/to/file.txt'); // => 'text/plain'
但是它仍然使用这个扩展来查找
发布于 2012-05-03 20:58:54
您应该看看命令行工具file
(Linux)。它尝试根据文件的前几个字节来猜测文件类型。您可以使用child_process.spawn
从节点内部运行它。
https://stackoverflow.com/questions/10431845
复制相似问题