res.sendFile强制下载文件

时间:2016-02-26 20:12:12

标签: node.js express

我正在尝试发送图像以在浏览器中全屏显示,但问题是以下代码强制将文件作为附件(已下载)发送,类似于res.download()而不是显示图像:

res.sendFile(file, {root: path.join(__dirname, '../storage')})

有没有办法显示图像而不强制下载或不读取原始文件?

2 个答案:

答案 0 :(得分:4)

我发现问题是该文件没有任何文件扩展名。当res.sendFile()尝试自动设置内容类型标头时,这会导致导致文件下载而不是显示的问题。

如果文件没有文件扩展名,您可以手动设置Content-Type的{​​{1}}标题,如下所示:

res.sendFiel()

这将导致图像正确显示。

答案 1 :(得分:1)

对于快递4.x,您需要:

res.set('Content-Type', mimeType); // mimeType eg. 'image/bmp'
res.sendFile( file );