[英]Local file download is corrupted
我正在尝试使用 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 模块)应该可以正常工作。 stream会自动关闭,不需要关闭,创建写文件stream时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);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.