res.download正在提供文件,但下载后是否为0字节? 有什么想法吗?
$KAFKA_HOME/config/server.properties
文件夹上的ls表示文件已准备好下载,名称正确,浏览器显示的所有下载框都在其中,但下载大小始终为0字节。
从文件文件下载页面检查文件,是的,而且一切正常。
发现的问题可能是: 我认为问题在于文件在送达客户端之前尚未完全下载,请参阅下文,我将尝试向PIPE添加回调。
app.get('/download', function(req, res) {
console.log("download");
console.log(req.query.fileID);
fileDownload(req.query.fileID, function(rep){
if(rep.success){
console.log("Serving File to User, File: " + rep.data);
res.download(__dirname + "/" + rep.data, rep.data)
}else{
console.log(res);
}
});
})
答案 0 :(得分:1)
该问题是由于在流完成写入之前就已将文件送达,
修复将.on('close')添加到流中。
r.on('response', function (res) {
res.pipe(fs.createWriteStream('./' + d['id'] + d['file_name']).on('close', function() {
console.log('file done');
console.log("Download Done: " + './' + d['id'] + d['file_name']);
return callback({success:true, data:d['id'] + d['file_name']});
}));
console.log("You should not see this");
});