所以我正在尝试创建一个功能的基本原型。本质上,最终目标是接收Base64编码的字符串和支持mime类型,并生成文件并从HTML 5 APP提供。现在我正在努力简单地获取一个文件,将其转换为Blob,然后将其显示在内存中。
var blobfile = atob(base64);
window.blobFromBlob = new Blob([binaryString], {
type: MIMEType
});
window.blobURL = URL.createObjectURL(window.blobFromBlob);
var a = "<a href=\"" + window.blobURL + "\">Binary Blob Link</a>";
document.getElementById('byte_content').innerHTML = a;
我创建了JSFiddle以显示我遇到的问题。当我把它说成一个JPEG然后尝试提供它时,img标签会显示损坏的图像。 Base64 blob我从来没有想过会工作,但是基础blob和基础64的blob我希望能够工作。
谁能看到我出错的地方?
谢谢!
注意:我设法通过从readAsBinaryString
更改为readAsArrayBuffer
注2:我开始怀疑它与atob
和btoa
答案 0 :(得分:1)
因此,如果其他任何人偶然发现这一点并发现它有用,我可以在this stackoverflow article的帮助下解决这个问题。解决方案涉及将readAsBinaryString
作为文件读取方法。使用btoa
创建Base64字符串,然后使用mentioned stackoverflow article中的b64toBlob
函数。
这是经过调整的JSFiddle,用于说明我是如何使用它的。