首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSaver.js Chrome问题,多个文档

FileSaver.js Chrome问题,多个文档
EN

Stack Overflow用户
提问于 2018-06-19 14:48:48
回答 1查看 1.8K关注 0票数 0

我正在使用Chrome v67和FileSaver.js。

此代码适用于FF & Edge,但不适用于Chrome。

代码语言:javascript
复制
var ajaxSettings = {
    url: "my/api/method",
    data: JSON.stringify(myItems),
    success: function (data) {
        if (data) {
            var dateToAppend = moment().format("YYYYMMDD-HHmmss");
            createPdf("pdfDoc_" + dateToAppend + ".pdf", data[0]);
            saveFile("txtDoc_" + dateToAppend + ".txt", data[1]);

            //sleep(2000).then(() => {
            //    saveFile("txtDoc_" + dateToAppend + ".txt", data[1]);
            //});
        }
    }
}

//function sleep(time) {
    //return new Promise((resolve) => setTimeout(resolve, time));
//}

function createPdf(filename, pdfBytes) {
    if (navigator.appVersion.indexOf("MSIE 9") > -1) {
        window.open("data:application/pdf;base64," + encodeURIComponent(pdfBytes));
    }
    else {
        saveFile(fileName, data);
    }
}

function saveFile(fileName, data) {
    var decodedByte64 = atob(data);
    var byteVals = new Array(decodedByte64.length);
    for (var i = 0; i < decodedByte64.length; i++) {
        byteVals[i] = decodedByte64.charCodeAt(i);
    }
    var byte8bitArray = new Uint8Array(byteVals);

    var blob = new Blob([byte8bitArray]);
    saveAs(blob, fileName); //FileSaver.js
}

调用API的结果是一个包含两个字节数组的数组。字节数组是文档。

如果我像用户一样运行这段代码,那么会发生的情况是,第一个文档被“下载”了,而第二个文档却没有。尝试在不刷新页面的情况下第二次这样做会导致没有文档被“下载”。“下载”字是用引号表示的,因为它已经被下载了,我真正想做的是从字节数组中生成文档。

这是奇怪的一点..。如果我打开控制台并在"saveFile“调用上放置一个断点,然后在调试器降落到断点时立即按下”继续“,那么世界就好了,并且下载了2个文档。

我最初认为这是时间问题,所以我花了2秒的时间来看看是否是这样,但事实并非如此。我唯一能做到的就是断点,不管我多么希望他们这么做,我都无法说服用户开始做。

任何帮助或指示都非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 08:48:57

您可能会在浏览器的左上角遇到一条消息:

https://yoursite.com想 下载多个文件 区块

如果你不再拥有它,那可能是因为你点击了“阻止”。

您可以在chrome://settings/content/automaticDownloads中管理此限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50931271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档