繁体   English   中英

发送图像文件响应-node.js

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM