我一直试图找到一个如何读取jpeg图像然后显示图像的示例。
var http = require('http'), fs = require('fs');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
fs.readFile('image.jpg', function (err, data) {
if (err) throw err;
res.write(data);
});
res.end();
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
尝试了以下代码,但我认为编码需要设置为缓冲区。使用console.log输出数据的'Object'。
答案 0 :(得分:64)
以下是如何阅读整个文件内容,如果成功完成,请启动一个显示JPG图像以响应每个请求的网络服务器:
var http = require('http')
, fs = require('fs');
fs.readFile('image.jpg', function(err, data) {
if (err) throw err; // Fail if the file can't be read.
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'image/jpeg'});
res.end(data); // Send the file data to the browser.
}).listen(8124);
console.log('Server running at http://localhost:8124/');
});
请注意,服务器由“readFile”回调函数启动,响应标头为Content-Type: image/jpeg
。
[编辑] 您甚至可以使用带data URI source的<img>
将图片直接嵌入HTML页面。例如:
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<html><body><img src="data:image/jpeg;base64,')
res.write(Buffer.from(data).toString('base64'));
res.end('"/></body></html>');
答案 1 :(得分:0)
要记住两件事内容类型和编码
1)如果文件是css
怎么办?if (/.(css)$/.test(path)) {
res.writeHead(200, {'Content-Type': 'text/css'});
res.write(data, 'utf8');
}
2)如果文件是jpg / png
怎么办?if (/.(jpg)$/.test(path)) {
res.writeHead(200, {'Content-Type': 'image/jpg'});
res.end(data,'Base64');
}
上面只是一个示例代码来解释答案,而不是确切的代码模式。