能写一个根据文件的本地路径下载到其他文件夹里面的前后端接口嘛
时间: 2024-03-27 11:38:04 浏览: 15
当然可以,以下是一个基于Node.js和Express框架的实现示例:
```javascript
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();
// 前端请求下载文件的接口
app.get('/download', (req, res) => {
const sourceFilePath = req.query.filepath; // 获取需要下载的文件的路径
const targetFilePath = path.join(__dirname, 'downloads', path.basename(sourceFilePath)); // 设置下载文件存储的目标路径
// 读取文件并将其写入目标路径
const readStream = fs.createReadStream(sourceFilePath);
const writeStream = fs.createWriteStream(targetFilePath);
readStream.pipe(writeStream);
// 监听文件写入完成的事件,返回下载链接
writeStream.on('finish', () => {
res.download(targetFilePath);
});
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
以上代码中,我们通过Express框架创建了一个简单的HTTP服务器,其中`/download`路由为前端请求下载文件的接口。在接口中,我们首先获取需要下载的文件的本地路径,然后将其写入到指定的目标路径中。最后,我们通过`res.download()`方法将目标路径返回给前端,以便前端可以下载文件。
需要注意的是,以上代码中的`downloads`文件夹需要提前创建好,否则会抛出异常。另外,上述代码仅供参考,实际应用中可能需要根据具体情况进行调整和优化。