如何在HttpResponse上设置下载文件的名称?

时间:2016-07-12 16:18:07

标签: node.js http-headers

我有一个用nodejs编写的简单文件服务器响应请求,比如对服务器URL的GET请求,如www.site.com/cdn/filename/latest这应该让用户发出一个wget请求并获得"最新的&# 34;名为" filename"的文件版本。问题是生成的文件名为"最新的"而不是" filename"。

有没有办法通过标题设置在响应中发回的文件的名称?

以下方法会写出回复。

function sendFile(res, filepath) {
   res.writeHead(200, {
       'Content-Type': mime.lookup(filepath)
   })
   fs.createReadStream(filepath).pipe(res)
}

1 个答案:

答案 0 :(得分:0)

内容处置是要使用的标头。 w3.org

const path = require('path')
function sendFile(res, filepath) {
   var filename = path.basename(filepath)
   res.writeHead(200, {
       'Content-Type': mime.lookup(filepath),
       'Content-Disposition': 'inline; filename="'+filename+'"'
   })
   fs.createReadStream(filepath).pipe(res)
}