ie11下载Base64文档

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)

我完全被困住了.我已经尝试了谷歌和这里的一切.

我最近的两次尝试

https://jsfiddle.net/pqhdce2L/

http://jsfiddle.net/VB59f/464/

Har*_*ind 0

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)