本地文件下载已损坏



我正在尝试使用 nodejs 将文件下载到我的 Windows PC

我尝试了以下代码。 问题是我从nodeJS下载的文件是185kb,实际原始文件大小是113kb(直接从浏览器下载找到(

request = require('request');
function download(url, dest, cb){
request.head(url, function(err, res, body){
request(url).pipe(fs.createWriteStream(dest)).on('close', function(){
cb();
});
});
};

我还尝试使用不同的代码下载文件

function download(url, dest, cb) {
var file = fs.createWriteStream(dest);
var request = https.get(url, function (response) {
response.pipe(file);
file.on('finish', function () {
file.close(cb);
file.end();
});
});
}

但是同样的错误发生了

问题是我正在尝试在 photoshop 中打开该文件,但它失败了,说文件已损坏,请帮助

此代码(使用内置的https模块(应该可以正常工作。流将自动关闭,无需关闭它,创建写入文件流时,autoClose 参数默认为 true。

请参阅文档:fs.createWriteStream。

如果文件仍然太大,则可能是您没有使用直接图像链接,请尝试在浏览器中选择"查看图像"/"在新选项卡中打开图像"等,然后改用该链接。

const https = require("https");
const fs = require("fs");
const url = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/1024px-FullMoon2010.jpg";
const fileStream = fs.createWriteStream("test.jpg");
https.get(url, response => {
response.pipe(fileStream);
});

您还可以使用请求库:

const request = require("request");
const fs = require("fs");
const url = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/1024px-FullMoon2010.jpg";
const fileStream = fs.createWriteStream("request-test.jpg");
const req = request(url);
req.on("response",  response => {
response.pipe(fileStream);
});

最新更新