controller 文件下载
时间: 2023-09-13 22:02:55 浏览: 140
要实现文件下载的功能,你需要在控制器中编写相应的代码。下面是一个示例,以使用 Express 框架为例:
```javascript
const express = require('express');
const fs = require('fs');
const path = require('path');
const router = express.Router();
router.get('/download', (req, res) => {
const filePath = path.join(__dirname, 'path/to/your/file'); // 替换为你要下载的文件路径
// 检查文件是否存在
if (fs.existsSync(filePath)) {
// 设置响应头,指定文件名和类型
res.setHeader('Content-Disposition', 'attachment; filename=your_file_name.ext'); // 替换为下载后的文件名和文件类型
res.setHeader('Content-Type', 'application/octet-stream'); // 替换为你的文件类型
// 创建可读流并将其管道传输到响应对象
const fileStream = fs.createReadStream(filePath);
fileStream.pipe(res);
} else {
res.status(404).send('File not found');
}
});
module.exports = router;
```
在上面的示例中,当客户端访问 `/download` 路径时,服务器会检查指定的文件是否存在。如果存在,服务器会将文件作为附件进行下载。如果文件不存在,则返回 404 错误。
请注意替换示例代码中的路径和文件名部分,以适应你的实际需求。
阅读全文