javascript:在客户端上提示zip下载

时间:2018-10-09 09:16:01

标签: javascript zip

我运行一个node.js服务器,该服务器通过JSZip和Express提供后响应,

function (req, res){
    let newZip = new JSZip();
    ...
    let content = newZip.generate({
        type: 'nodebuffer'
    });
    fs.writeFile(fileDir, content, 'utf8', (err, data) => {
        res.download(fileDir);
    }
}

其中

  • fileDir 是文件的目录,并且
  • fs 是node.js的文件系统模块。

enter image description here

现在,当我尝试在客户端提示下载时:

xhr.onload = function () {
    download(new Blob([str2bytes(this.response)], {
        type: "octet/stream"
    }));
}
function str2bytes(str) {
    var bytes = new Uint8Array(str.length);
    for (var i = 0; i < str.length; i++) {
        bytes[i] = str.charCodeAt(i);
    }
    return bytes;
}

发生以下情况(注意,下载的文件 374kb 与服务器端文件的 377kb )。我的直觉是str2bytes无法正常工作。

enter image description here

0 个答案:

没有答案