1.设置响应头:
使用 res.writeHead 设置适当的响应头,包括 Content-Type 和 Content-Disposition 以触发下载对话框。
2.创建文件读取流:
使用 fs.createReadStream 创建文件读取流,并通过 pipe 方法将其连接到响应对象 res,从而将文件内容发送给客户端。
javascript
const express = require('express');
const path = require('path');
const fs = require("fs");
const router = express.Router();
router.get('/download/example.txt', function(req, res) {
const filePath = path.join(__dirname, 'example.txt');
// 设置响应头
res.writeHead(200, {
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment; filename="example.txt"'
});
// 创建文件读取流并将其连接到响应对象
const fileStream = fs.createReadStream(filePath);
fileStream.pipe(res);
});