我正在使用库来使用OAuth和代理从salesforce接收附件(图片)。没有库(和代理),我可以使用XHR,但我必须使用库,因为我需要代理。
在chrome调试器中,我可以看到图像被正常下载,但我无法在我的代码中使用它。数据如下:
到目前为止我尝试过的方法:
btoa(unescape(encodeURIComponent(file.body)));
- 生成无效的base64。使用在线工具解码它会给我带回相同的字符串。
escape(file.body)
- 将其用作base64也不起作用。
转换为blob。
var blob = new Blob([file.body], {type : "image/png"});
urlCreator.createObjectURL(blob);
它指向的URL不显示任何内容,如果我删除{type : "image/png"}
,则url指向显示相同二进制字符串的页面。
答案 0 :(得分:0)
我会创建一个<img />
元素,将其src
属性与您收到的图像数据相等。现在你有了这张照片。
如果您要将其解压缩或将其转换为PNG,我会应用此另一个answer流程。
答案 1 :(得分:0)
长话短说,这看起来像是有人用readAsText()读取图像,该图像将(“解释”)二进制代码转换为utf8而不是utf16。您需要让服务器以理想的状态以arraybuffer或blob格式,甚至以base64格式返回数据,这些保留二进制文件。
带有摘要的长版。 (代码段中的那些问号符号会显示丢失的信息,请将其与不是utf16中的问号的二进制文件进行比较): https://stackoverflow.com/a/56523118/2962797