我运行一个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);
}
}
其中
现在,当我尝试在客户端提示下载时:
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无法正常工作。