0
4

2 回答 2

4

这取决于您与图像一起发送的标题。

要让浏览器下载图像而不是显示它,您需要设置"Content-Disposition: attachment"标题。

由于您使用的是static中间件,因此这比在您自己的请求处理程序函数中要复杂一些。您必须在静态中间件之前注入一个中间件。

app.use(function(req, res, next) {
  if (req.path.split('/')[0] === "downloads")
    res.attachment(); //short for res.set('Content-Disposition', 'attachment')
  next();
});

app.use(express.static(__dirname + '/public'));
于 2013-02-07T18:40:54.893 回答
0

与@rdrey 的回答类似,如果?dlurl 中有查询参数,则让浏览器下载文件。

app.use('/gifs/*.gif', function(req, res, next) {
  if (req.query.dl !== undefined) res.attachment();
  next();
});

app.use('/gifs', express.static(__dirname + '/gifs'));
于 2014-12-01T11:06:37.503 回答