问题
如何在邮递员中从在线图像获取 Base64 数据?
背景
我正在邮递员中进行迁移。其中一部分是迁移消息中的嵌入图像。嵌入的图像像这样插入到 html 中:
<img src="https://attachment.freshdesk.com/inline/attachment?token=LongTokenHere" data-id="9198554508" alt="image.png" width="562" height="181">
目标
将图像链接替换为 Base64 数据,如下所示:
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" data-id="9198554508" alt="image.png" width="562" height="181"/>
进步
我可以下载图像的数据,我假设是字节数据,将其转换为ascii(我假设是base64格式),然后上传它。但是当像这样上传时,它最终会变成损坏/无法查看的图像。
pm.sendRequest(link, (err, res) => {
err ? reject(err)
: resolve({link, raw: res.text(), imageData: btoa(res.text())});
});
这确实让我得到了似乎是base64数据的东西:(完整文件中的一小段)
/VBORw0KGgoAAAANSUhEUgAAAmcAAAD9CAYAAAD9bSdzAAAgAElEQVR4Af39f2xc/f39/f39/f1xV/1X/f26N0oUdSkrEP12/f0iAWkr/f39Bf0obTf9/Qv9/f1y/SH9OG40dXH9/TAQ/
我尝试过的其他事情
在邮递员中,我可以
get
链接,然后正文预览会显示应有的图像。然后我可以 save response to file
,它显示了一个工作的 png。在记事本++中比较两个源时,它们确实看起来有点相似:
我还尝试查看尝试使用https://base64.guru/converter/decode/file将base64数据转换为文件时发生了什么,我收到了以下消息:
Your browser cannot display the file as “application/octet-stream”.
。我不确定如何处理这些信息,因为响应标头向我显示了 content-type: image/png
。
因为服务器的Content type返回Content-Type: application/octet-stream。这不是有效的图像类型。 IE8 可能会尝试显示它,而 Chrome 显然不会。