将文件读取到blob并在javascript中显示

时间:2016-02-24 15:36:04

标签: javascript image pdf blob

所以我正在尝试创建一个功能的基本原型。本质上,最终目标是接收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:我开始怀疑它与atobbtoa

有关

1 个答案:

答案 0 :(得分:1)

因此,如果其他任何人偶然发现这一点并发现它有用,我可以在this stackoverflow article的帮助下解决这个问题。解决方案涉及将readAsBinaryString作为文件读取方法。使用btoa创建Base64字符串,然后使用mentioned stackoverflow article中的b64toBlob函数。

这是经过调整的JSFiddle,用于说明我是如何使用它的。

https://jsfiddle.net/ajwhiteway/vstj3bcm/1/