显示从快递服务器传回的图像

Posted

技术标签:

【中文标题】显示从快递服务器传回的图像【英文标题】:displaying an image streamed back from an express server 【发布时间】:2021-12-20 13:03:31 【问题描述】:

目前正在尝试在 img 标记内从 api 返回和显示图像。 我不确定返回的是什么数据类型,也不确定如何处理它以使其显示在图像标签中。

无论我使用 pipe() 还是 res.sendFile(),数据似乎都以相同的格式返回。

这是服务器

app.get('/image', (req,res) => 
    var p = path.join(__dirname, './uploads', 'DSC_3985.JPG'); 
    res.setHeader('Content-Type', 'image/jpg');
    fs.createReadStream(p).pipe(res);
)

这是打印到控制台时返回的数据/文件的 sn-p。

8>����*��5&�`�P���o��U�@�3�7������f��I��CH�6���>���sILB�iv
WwW&�~�N��2�5�\������j�����^�z��yl�,��=)�&�6��y�5�XM��o�psB�e�
fTe�׊��$gz�n�6Rۣ�/$n��QY2���߭C�DV#i_�'<�����N�����

我尝试了以下方法

<img src="data:image/jpg;base64,xxxxxxxxxxxxx...">

我还尝试将数据视为 blob 我也尝试将数据作为文件读取。

【问题讨论】:

【参考方案1】:

问题是图像的存储,而不是检索。

我使用 npm 包 multer 将图像存储在服务器上,并没有在存储函数中指定 mimetype。

这导致文件在没有 mimetype 的情况下上传。

向上传的文件添加所需的 mimetype 解决了我的问题。

【讨论】:

以上是关于显示从快递服务器传回的图像的主要内容,如果未能解决你的问题,请参考以下文章

nodejs问题将graphql上传文件发送到服务

后台传回的Json数据怎么在HTML表单中显示并能动态编辑(添加、删除)

宇宙中如何传回图片

使用其他网站调整图像大小

缩放图像以适合画布

移动端接口碰到了服务器无法解析ios端传回?