Express.js:res.attachment和res.download之间有什么区别?

16

res.attachmentres.download有什么区别,应该在何时使用?我有点困惑。在我的情况下,我将表单数据作为JSON发送到服务器,服务器会将其创建为文件并用下载链接进行响应。在这两种方法中,我应该使用哪一种:res.attachment还是res.download

1个回答

18

res.attachment将"HTTP响应Content-Disposition头字段设置为“attachment”"。

这基本上是在说,'嘿,这个文件应该被视为附件,而不是网页。'

res.download则"作为“附件”,将路径上的文件传输。通常,浏览器会提示用户进行下载。"

此处了解更多信息。


好的.. 所以如果我使用 res.attachment,我需要单独使用 response.sendfile 来实际发送文件。但是对于 res.download,不需要这样做。 - Rohit Rane
res.attachment(filename.zip) 会创建一个文件还是写入流? - Neeraj Sewani
2
@NeerajSewani,两者之间的区别并不清楚。在这两种情况下,响应都是发送回客户端的文件!我阅读了文档,除了res.download()提供回调函数来处理错误外,我没有看到明显的区别。还有其他的区别吗? - x7R5fQ
两者之间有一些关键区别。正如x7R5fQ指出的那样,.download具有回调参数以进行错误处理,以及一个选项参数,如果需要,该内容将通过 .sendFile()方法传递。至于 .attachment(),此方法确实返回一个对象,而.download()则没有返回值。 - NSTuttle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接