当我上传照片时,它会转换成base64格式,然后当我使用Mongoose发送到mongodb时,它会保存为二进制文件。但是,当我从数据库中回调相同的图片时,它返回的是缓冲区数组。转换为base64后,它以base64字符串的形式返回,但与原始base64完全不同。无法在浏览器中呈现新的base64,因为它已损坏。下面是不同字符串的图片
这是初始base64

这是缓冲区数组

这是使用Buffer.from(头像).toString(‘base64’)从缓冲区数组转换后损坏的base64。请注意,在浏览器中渲染之前,我附加了"data:image/png;base64“,它仍然没有渲染。

有人能告诉我我哪里做错了吗?
发布于 2019-08-29 11:02:17
最好的解决方案是转换为png或jpg文件,仅上传路径并将图像保存到文件夹。
发布于 2019-08-30 07:14:16
下面是我解决这个问题的方法。我将二进制代码转换为utf8,而不是base64。
在Buffer.from(binary_data,'binary').toString('utf8')之间有很大的不同
和
Buffer.from(binary_data,'binary').toString('base64')
https://stackoverflow.com/questions/57702142
复制相似问题