我在字符串中有base64编码的二进制数据.
const contentType = 'image/png';
const b64Data = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
Run Code Online (Sandbox Code Playgroud)
我想创建一个blob:包含此数据的URL并将其显示给用户.
const blob = new Blob(????, {type: contentType});
const blobUrl = URL.createObjectURL(blob);
window.location = blobUrl;
Run Code Online (Sandbox Code Playgroud)
我还没有弄清楚如何创建Blob.
在某些情况下,我可以通过使用data:URL 来避免这种情况.
const dataUrl = `data:${contentType};base64,${b64Data}`;
window.location = dataUrl;
Run Code Online (Sandbox Code Playgroud)
但是在大多数情况下,data:URL非常大.
如何Blob在JavaScript中将base64字符串解码为对象?
我有一个Base64编码的文件,可以是PDF文件或图像.我想在HTML5页面中创建一个按钮,在新选项卡中打开此base64(或者新页面无关紧要)
我发现这段代码可以解决问题:
<a href="http://chriscoyier.net"
onclick="window.open(this.href); return false;"
onkeypress="window.open(this.href); return false;">
This link will open in new window/tab
</a>Run Code Online (Sandbox Code Playgroud)
它运作良好.但是当我用http替换http链接时
href="data:application/octet-stream;base64,/9j/4A.."
Run Code Online (Sandbox Code Playgroud)
然后下载文件但不在浏览器中显示.
我该怎么做?
谢谢