diff --git a/server-nodejs/docs/api-overview.md b/server-nodejs/docs/api-overview.md index 08edeb7fc..44cae09e7 100644 --- a/server-nodejs/docs/api-overview.md +++ b/server-nodejs/docs/api-overview.md @@ -137,14 +137,12 @@ None. ### Request Query Parameters -| Name | Value | -|----------------|-------------| -| items | dir/file id | -| items | dir/file id | -| ... | ... | - - -When multiple items, all _must_ be from the same folder. Both folder and file ids are allowed in __items__ array. +| Name | Value | Default | Comments | +|----------------|---------------|---------|-----------------------------------------------------------| +| preview | true or false | false | Applicable only when single *items* parameter is file ID | +| items | dir/file id | - | Both folder and file ids are allowed as *items* | +| items | dir/file id | - | When multiple *items*, all _must_ be from the same folder | +| ... | ... | ... | | ### Response diff --git a/server-nodejs/router/download.js b/server-nodejs/router/download.js index da43a4580..cb7c1d987 100644 --- a/server-nodejs/router/download.js +++ b/server-nodejs/router/download.js @@ -8,6 +8,7 @@ const { id2path } = require('./lib'); module.exports = ({ options, req, res, handleError }) => { const ids = Array.isArray(req.query.items) ? req.query.items : [req.query.items]; + const preview = req.query.preview === 'true'; let reqPaths; try { @@ -33,6 +34,8 @@ module.exports = ({ options, req, res, handleError }) => { }], filename: (absPaths[0] === options.fsRoot ? options.rootName : path.basename(absPaths[0])) + '.zip' }); + } else if (preview) { + res.sendFile(absPaths[0]); } else { res.download(absPaths[0]); }