【发布时间】:2022-01-09 04:16:08
【问题描述】:
我有这种情况,我使用 XMLHttpRequest 加载图像但没有将 responseType 设置为 blob。所以我收到一个字符串
我的问题是,在这种情况下是否仍然可以渲染图像?
例如,我尝试将此字符串转换为 Blob
out = new Blob([imageString], { type: 'image/png' });
但这不会呈现预期的图像。有什么建议吗?
这就是我的节点后端如何将该图像发送到浏览器
app.get("/binary/*", (req: express.Request, res: express.Response) => {
const file = binaryPath + '/test.jpg';
res.sendFile(file);
});
【问题讨论】:
-
是不是图片格式不一样,比如
out = new Blob([imageString], { type: 'image\/jpeg' });? -
似乎没有任何区别
-
在我的应用程序中,我通过 websocket 获取二进制图像,然后通过
blob = new Blob([data], {'type': 'image\/jpeg'}); url = window.URL.createObjectURL(blob);渲染它并设置<img src=url>。这样可行。你确定你的imageString是一个二进制字符串吗?您可以检查btoa(imageString)是否给出正确的 base64 编码图像 ... -
这是一个堆栈闪电战:stackblitz.com/edit/… 如您所见,它似乎不起作用
-
我用不同的编码做了一些实验,但没有成功。所以我最好的猜测是问题是由于控制台中的这个警告:
WARNING: sanitizing unsafe URL value blob。以下是您可能需要考虑的一些输入:roufid.com/warning-sanitizing-unsafe-url-value-angular
标签: javascript image xmlhttprequest