如何将 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);
});
我正在使用 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);
});