res.download обслуживает файл, но после загрузки он равен 0 байтам?
Есть идеи?
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);
}
});
})
A ls в папке показывает, что файл готов к загрузке, имена указаны правильно и все в окне загрузки, которое отображает браузер, но загрузка всегда имеет размер 0 байт.
Проверка файла из файла загрузки файла. Да, он есть, и да, все хорошо.
МОЖЕТ БЫТЬ ВЫПУСК:
Думаю, проблема в том, что файл не был полностью загружен до того, как он был передан клиенту, см. Ниже, я попытаюсь добавить обратный вызов в ТРУБУ .....
function fileDownload(id, callback){
info(id, function(res){
if(!res.error){
info(id, function(res){
if(!res.error){
//console.log(res.data);
var d = JSON.parse(res.data);
//console.log(d['file_name']);
var url2 = baseurl + "/api/file/" + id ;
var r = request(url2);
r.on('response', function (res) {
res.pipe(fs.createWriteStream('./' + d['id'] + d['file_name']));
console.log("Download Done: " + './' + d['id'] + d['file_name']);
return callback({success:true, data:d['id'] + d['file_name']});
});
}else{
console.log("ERROR: " + res.data)
return callback({success:false, data: res.data});
}
});
}else{
console.log("ERROR: " + res.data)
return callback({success:false, data: res.data});
}
});
};