vue下载文件后端代码
时间: 2023-11-12 15:59:22 浏览: 49
下面是一个使用Node.js编写的后端代码示例,可以实现下载文件的功能:
```javascript
const express = require('express');
const fs = require('fs');
const path = require('path');
const app = express();
app.get('/download/:filename', (req, res) => {
const filename = req.params.filename; // 获取文件名
const file = path.join(__dirname, 'files', filename); // 拼接文件路径
if (fs.existsSync(file)) {
// 判断文件是否存在
res.setHeader('Content-disposition', `attachment; filename=${filename}`); // 设置响应头,告诉浏览器以附件形式下载文件
const filestream = fs.createReadStream(file); // 创建可读流
filestream.pipe(res); // 将文件流传输到响应中
} else {
res.status(404).send('File not found'); // 如果文件不存在,返回404错误
}
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
上述代码中,我们通过Express框架创建一个服务器,并定义了一个路由`/download/:filename`,其中`:filename`是动态参数,表示待下载的文件名。当用户访问该路由时,服务器会读取`files`目录下的对应文件,并将文件流传输到响应中,最终实现文件下载的功能。
需要注意的是,在上述代码中,我们使用了`Content-disposition`响应头来告诉浏览器以附件形式下载文件。此外,我们还使用了`createReadStream`方法创建了一个可读流,以便从服务器读取文件内容。