将zip文件从node.js服务器发送到node.js客户端

时间:2017-11-01 17:47:45

标签: javascript node.js express zip

我正在尝试将一个zip文件从node.js服务器发送到node.js客户端,但是当我保存zip时它已损坏且无法打开。

我使用adm-zip压缩文件并发送给客户

app.get('/checkForUpdate', function (req, res) {

    var zip = new AdmZip();
    zip.addLocalFile("./update.js");
    var willSendthis = zip.toBuffer();
    res.send(willSendthis);

});

这是我的客户代码

$.ajax({
    type: 'GET',
    contentType: 'application/json',
    data: {version: version},
    url: 'http://localhost:3000/checkForUpdate',
    success: function (data) {

        fs.writeFile("update.zip", data, function(err) {

            if(err) {
                console.log(err);
            } else {
                console.log("The file was saved!");
            }

        });
    }
});

2 个答案:

答案 0 :(得分:0)

我想这应该设置为MIME类型application/x-zip-compressed

答案 1 :(得分:0)

我认为问题在于发送缓冲区。如果我没记错的话,缓冲区需要一个MIME类型的octect流。尝试在标头中使用octect-stream并让adm-zip加载缓冲区