[英]Sending an image file response - node.js
我只需要使用net module和socket.write命令来实现Web服务器。 我正在使用以下代码发送文本文件(html,css等):
fs.readFile(file,encoding='UTF8', function (err, data) {
if (err) throw err;
var dataToReturn=data.toString();
socket.write('Content-Length:'+dataToReturn.length+'\r\n');
socket.write('\r\n');
socket.write(dataToReturn);
});
它可以正常工作,但是当我需要发送图像文件时它不起作用。 我该怎么办?
通过将编码设置为utf8
,您已明确告诉Node将文件转换为文本字符串,但这是二进制图像,因此转换过程可能会破坏某些数据并使长度不正确。 像这样将数据保留为Buffer:
fs.readFile(file, function (err, data) {
if (err) throw err;
socket.write('Content-Length: ' + data.length + '\r\n');
socket.write('\r\n');
socket.write(data);
});
fs.readFile(file, function (err, data) {
if (err) throw err;
//Content-Length should be binary length not string length
socket.write('Content-Length:'+data.length+'\r\n');
socket.write('\r\n');
socket.write(data);
});
您可能需要一种内容类型,以使您的回复更有效:)
socket.write('Content-Type:'+ mimetype +'\\ r \\ n');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.