如何使用 Express.js 实现文件下载功能
Express.js 是一款流行的 Node.js 后端开发框架,可以帮助开发者快速搭建高效的 web 应用程序。其中一个常见的需求就是实现文件下载功能,本文将详细介绍如何使用 Express.js 实现文件下载,并给出示例代码。
实现思路
在 Express.js 中,实现文件下载功能的思路比较简单,只需完成以下三个步骤:
- 读取需要下载的文件
- 设置响应头信息,告诉浏览器服务器返回的是一个文件,而不是一段 HTML 代码或者其他数据。
- 返回文件给客户端
具体实现
1. 读取需要下载的文件
使用 fs 模块的 readFileSync() 方法读取需要下载的文件,并将其存储在变量中:
const fs = require('fs'); const filePath = './example.pdf'; // 文件路径 const file = fs.readFileSync(filePath);
2. 设置响应头信息
设置响应头信息前,我们需要先设置一些请求头信息。针对文件下载功能,建议使用 GET 请求。
app.get('/download', function (req, res) { // 设置请求头信息 res.setHeader('Content-disposition', 'attachment; filename=example.pdf'); res.setHeader('Content-type', 'application/pdf'); // 返回文件 res.download(filePath, 'example.pdf'); });
在上面的代码中,我们设置了两个响应头信息:
- Content-disposition:告诉浏览器返回的是一个附件,即下载文件。
- Content-type:告诉浏览器返回的文件类型是 application/pdf,即 PDF 类型的文件。
3. 返回文件给客户端
在设置完响应头信息后,我们要将读取到的文件返回给客户端,可以使用 Express.js 提供的 download() 方法:
res.download(filePath, 'example.pdf');
其中,第一个参数是文件路径,第二个参数是用户下载时保存的文件名。如果第二个参数不设置,则默认使用第一个参数的文件名。
完整示例代码
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -- - -------------- ----- --- - ---------- ----- ---- - ----- ----- -------- - ---------------- -- ---- ----- ---- - -------------------------- -------------------- -------- ----- ---- - -- ------- ------------------------------------ ------------ ----------------------- ----------------------------- ------------------- -- ---- ---------------------- --------------- --- ---------------- -------- -- - ------------------- -- ---------- ---
小结
本文介绍了如何使用 Express.js 实现文件下载功能,并给出了详细的实现思路和示例代码。希望本文能够对你的开发和学习有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67821f71935627c900f87ca2