Deliver content-length and file not found errors for file downloads

This commit is contained in:
Johannes Zellner
2017-08-19 10:48:12 +02:00
parent cf518b0285
commit 3d59b8a5b0
2 changed files with 24 additions and 5 deletions

View File

@@ -557,14 +557,15 @@ function downloadFile(req, res, next) {
if (typeof req.query.file !== 'string' || !req.query.file) return next(new HttpError(400, 'file query argument must be provided'));
apps.downloadFile(req.params.id, req.query.file, function (error, result, filename) {
apps.downloadFile(req.params.id, req.query.file, function (error, result, info) {
if (error && error.reason === AppsError.NOT_FOUND) return next(new HttpError(404, error.message));
if (error) return next(new HttpError(500, error));
// TODO get real content type and size
res.writeHead(200, {
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment; filename="' + filename + '"'
// 'Content-Length': stat.size
'Content-Disposition': 'attachment; filename="' + info.filename + '"',
'Content-Length': info.size
});
result.pipe(res);