[英]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.