У меня есть API для загрузки файлов
itemsRouter.route('/download/:id/:category/:type/:price/:name')
.get(function(req,res){
var currentDownloadIndex=0;
if(req.session.username){
// var uri = url.parse(req.url).id;
var filename = path.join(process.cwd(),'/uploads/files/'+ req.params.category+'/'+req.params.id+'.'+req.params.type);
path.exists(filename, function(exists) {
if(!exists) {
//file doesn't exist
res.redirect('/');
} else {
//if (fs.statSync(filename).isDirectory())
// filename += '/Justin Bieber - What Do You Mean.mp4';
try {
var stat = fs.statSync(filename);
res.writeHeader(200,{"Content-Length":stat.size});
var fReadStream = fs.createReadStream(filename);
fReadStream.pipe(res);
if(!(req.session.items[req.params.name]==req.params.name)){
req.session.price=parseFloat(req.session.price)+parseFloat(req.params.price);
req.session.items[req.params.name]=req.params.name;
currentDownloadIndex=currentDownloadIndex+1
}
// Todo : Generate a report after each success full download
}
catch (error) {
if(currentDownloadIndex==1){
req.session.price=parseFloat(req.session.price)-parseFloat(req.params.price);
req.session.items[req.session.items.length]=(req.params.name);
}
}
}
});
}else {
res.redirect('/');
}
});
Это отлично работает для видеофайлов, просто загружает файл в браузере, однако, когда файл PDF загружается, он открывается в браузере, и мне это не удобно, может ли кто-нибудь показать мне, как инициировать загрузку без каких-либо проблем
благодаря
Добавьте заголовок типа контента как "application/pdf".