繁体   English   中英

http.get - 下载后文件损坏

[英]http.get - Files are corrupted after download

OSX 上的 NodeJS 0.12.2。

我目前正在尝试使用 NodeJS 中的 http 从我的 localhost http 服务器(也用 Dropbox 测试)下载 .asar 文件(电子/原子壳档案)。 但是,无论我做什么组合,存档都会损坏,其他文件中的文件不应该损坏,好像这些块被混淆了(如果这有任何意义..)

我还尝试从 localhost 和 dropbox 下载一个普通的 .zip 文件,但遇到了同样的问题。

这是我最后一次尝试放在一起,只是被卡住了。 我已经尝试过使用和不使用 setEncoding 选项。 我究竟做错了什么?

var downloadFile = function(url, dest, cb) {
  var file = fs.createWriteStream(dest);
// https when using dropbox direct links
  http.get(url, function(res) {
    res.setEncoding('binary');
    res.pipe(file);
    file.on('finish', function() {
      file.close(cb);
    });
  });
};

问题来自您将编码显式设置为二进制,例如,这很好用:

fs = require("fs");
http = require("http");

var downloadFile = function (url, dest, cb) {
    var file = fs.createWriteStream(dest);
    http.get(url, function (res) {
        //res.setEncoding('binary');
        res.pipe(file);
        file.on('finish', function () {
            file.close(cb);
        });
    });
};

downloadFile("http://www.sevenstring.org/forum/images/misc/ss_header_l.png", "test.png", function (err) {
    console.log(err);
});

我遇到了同样的问题。 更改编码没有帮助。 我最终认为gzip: true有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM