我的html中有一个img标记,用于从nodejs服务器请求图像。在我的服务器js文件中,我具有以下代码来发送图像响应,但是我发现数据未在客户端呈现。有什么建议吗?
const getFile = (filePath) => {
return new Promise((resolve, reject) => {
fs.readFile(filePath, (error, data) => {
if (!error) {
resolve(data);
} // enter code here
else reject(error);
});
});
};
getFile(test.jpg).then((data) => {
response.statusCode = "200";
response.setHeader("Content-Type", "image/jpg");
response.end(data, "base64"); // Also tried response.end(data, "binary")
})
.catch(error => console.log(error));
答案 0 :(得分:0)
这是Express应用程序吗?如果是这样,最好的选择是使用static middleware。将所有静态(二进制)文件放在一个文件夹中,用静态中间件公开,然后以这种方式加载。
答案 1 :(得分:0)
使用fs.createReadStream而不是fs.readFile并传递用于图像的块。
let frstream = fs.createReadStream(url);
response.statusCode = "200";
response.setHeader("Content-Type", "image/jpeg");
frstream.pipe(response);