将文件读取到blob并以javascript显示
所以我试图创建一个功能的基本原型。基本上,最终目标是接收Base64编码的字符串和支持mime类型,并生成文件并从HTML5应用程序提供。现在,我正致力于从内存中获取一个文件,将其转换为一个Blob,然后显示它将文件读取到blob并以javascript显示,javascript,image,pdf,blob,Javascript,Image,Pdf,Blob,所以我试图创建一个功能的基本原型。基本上,最终目标是接收Base64编码的字符串和支持mime类型,并生成文件并从HTML5应用程序提供。现在,我正致力于从内存中获取一个文件,将其转换为一个Blob,然后显示它 var blobfile = atob(base64); window.blobFromBlob = new Blob([binaryString], { type: MIMEType }); window.blobURL = URL.createObj
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;
var blobfile=atob(base64);
window.blobFromBlob=新Blob([binaryString]{
类型:MIMEType
});
window.blobURL=URL.createObjectURL(window.blobFromBlob);
var a=“”;
document.getElementById('byte_content')。innerHTML=a;
我已经创建了一个新的应用程序来显示我遇到的问题。当我把,比如JPEG,放进去,然后试着把它放上去时,img标签会显示损坏的图像。Base64 blob我从来没有想过会工作,但是二进制blob和来自Base64的blob我确实希望工作
有人能看出我哪里做错了吗
谢谢
注意:通过将readAsBinaryString
更改为readAsArrayBuffer
注2:我开始怀疑它与
atob
和btoa
有关,因此,如果其他人偶然发现这一点并发现它有用,我可以在您的帮助下解决此问题。解决方案包括保留readAsBinaryString
作为文件读取方法。使用btoa
创建Base64字符串,然后使用中的b64toBlob
函数
下面是调整后的JSFIDLE,以显示我是如何使其工作的