zaz*_*iki 10 javascript base64
我在这一点上已经尝试了很多东西而且我无法获得任何工作.
我需要ie从附件面板下载base64文档.我无法访问服务器端代码或数据库.图像无法存储在要拉出的文件夹中,需要以这种方式呈现.
我尝试使用普通链接并将base64 sting粘在那里,它只是打开一个新的空白窗口.
<a target="_blank" download class="btn btn-primary downloadAttachment" href="' + blobUrl + '" >Download</a>
Run Code Online (Sandbox Code Playgroud)
我尝试将网址转换为blob打开blob,导致浏览器无法执行任何操作.
function base64toBlob(base64Data, contentType) {
contentType = contentType || '';
var sliceSize = 1024;
var byteCharacters = base64Data;
var bytesLength = byteCharacters.length;
var slicesCount = Math.ceil(bytesLength / sliceSize);
var byteArrays = new Array(slicesCount);
for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
var begin = sliceIndex * sliceSize;
var end = Math.min(begin + sliceSize, bytesLength);
var bytes = new Array(end - begin);
for (var offset = begin, i = 0 ; offset < end; ++i, ++offset) {
bytes[i] = byteCharacters[offset].charCodeAt(0);
}
byteArrays[sliceIndex] = new Uint8Array(bytes);
}
return new Blob(byteArrays, { type: contentType });
}
Run Code Online (Sandbox Code Playgroud)
我完全被困住了.我已经尝试了谷歌和这里的一切.
我最近的两次尝试
IE 以经典方式要求您使用专有方法来“保存”blob。
msSaveBlob或者msSaveOrOpenBlob就是您正在寻找的。
不要将其添加为href,而是将处理程序添加onclick到您的a标记并调用navigator.msSaveBlob(blob, "Sample Name");
此外,如果您需要支持其他浏览器,您将需要一些其他代码来支持这些浏览器。
例如:
var content = new Blob(["Hello world!"], { type: 'text/plain' });
var btn = document.getElementById('btn');
if (navigator.msSaveBlob) {
btn.onclick = download;
} else {
btn.href = URL.createObjectURL(content);
btn.download = true;
}
function download() {
if (navigator.msSaveBlob) {
navigator.msSaveBlob(content, "sample.txt");
}
}Run Code Online (Sandbox Code Playgroud)
<a id="btn" href="#">Download the text!</a>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |