nodejs实现文件上传下载
时间: 2023-11-08 22:51:36 浏览: 40
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它可以使JavaScript在服务器端运行。要实现文件上传和下载,可以使用Node.js的一些模块和框架来简化开发过程。
对于文件上传,可以使用Multer作为中间件进行数据处理。Multer是一个流行的Node.js中间件,用于处理表单数据,特别是文件上传。以下是一个简单的示例代码:
```javascript
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
// 处理上传的文件
console.log(req.file);
res.send('文件上传成功!');
});
app.listen(8080, () => {
console.log('服务器已启动,监听端口8080');
});
```
上述代码创建了一个基本的Express应用程序,并使用Multer中间件来处理文件上传。`upload.single('file')`表示只接受名为`file`的单个文件。在回调函数中可以进行文件处理的操作。
对于文件下载,可以使用Node.js的内置模块`fs`和`http`来实现。以下是一个简单的示例代码:
```javascript
const http = require('http');
const fs = require('fs');
http.createServer((req, res) => {
if (req.method === 'GET' && req.url === '/download') {
const file = fs.createReadStream('path/to/file.txt');
res.setHeader('Content-disposition', 'attachment; filename=file.txt');
file.pipe(res);
}
}).listen(8080, () => {
console.log('服务器已启动,监听端口8080');
});
```
上述代码创建了一个简单的HTTP服务器,当GET请求路径为`/download`时,会将文件作为附件下载。可以通过设置`Content-disposition`头来指定下载文件的名称。