如何将 jpeg 文件从服务器上的文件夹发送到客户端并在图像元素中显示?

How to Send a jpeg File from a Folder on Server to the Client and Display It in an Image element?

我正在使用 node.js 并表示服务器端。我正在使用 whatwg-fetch 和 React 客户端。目前正在发生的事情是:

第 1 步:我使用 fetch 客户端向服务器发出 post 请求。

第 2 步:我让服务器发回客户端指定的文件。示例:

res.sendFile(path.resolve(__dirname + '/../Images/' + 'ImageTheClientWants.jpeg'));

第3步:我在客户端查看response.body,它是ReadableByteStream类型。我不确定如何从这里开始。

我现在唯一的想法是将字节读入缓冲区,将该缓冲区转换为字符串,然后在必要时将该字符串编码为 base64。 然后我可以 setState 对这样的元素做出反应:

<img src={src} />

哪里

src="data:image/jpeg;base64," + the_string_I_created_from_ReadableByteStream;

我对这种方法的第一个问题是 javascript 似乎没有很多开箱即用的好工具来处理缓冲区(除非我在文档中遗漏了一些东西)。我对这种方法的第二个问题是,npm 上可能已经有一些包可以更好地做到这一点并且已经过测试。

我的问题是如何将 jpeg 图像文件(不是 public)发送到客户端并在 html 图像标签中显示该图像?我走在正确的轨道上还是有其他方法可以做到这一点?

我还想指出,通常我不想制作图像 public,这就是为什么我不直接将它们上传到 public 文件夹的原因。

感谢您的帮助!

这个解决方案怎么样,这是相关问题click here

反应:

<div>    
    <img src={image_src}></img>
 </div>

快递:

router.get('/image/:id',function(req,res){
    res.sendFile(dynamicImagepath);
});