node formdata 实现多文件上传
时间: 2023-09-10 11:01:34 浏览: 52
Node.js中使用FormData可以实现多文件上传。下面是一个简单的示例代码:
首先,需要引入相关的模块:
```
const http = require('http');
const fs = require('fs');
const FormData = require('form-data');
```
然后,创建一个FormData对象,用于存储要上传的文件:
```
const formData = new FormData();
```
接下来,可以通过append方法向FormData对象中添加要上传的文件:
```
formData.append('file1', fs.createReadStream('path/to/file1.txt'));
formData.append('file2', fs.createReadStream('path/to/file2.txt'));
```
然后,创建一个请求对象:
```
const options = {
hostname: 'localhost',
port: 8000,
path: '/upload',
method: 'POST',
headers: formData.getHeaders()
};
const req = http.request(options, (res) => {
// 处理服务器的响应
});
// 将FormData对象写入请求体
formData.pipe(req);
req.on('error', (err) => {
console.error(err);
});
req.end();
```
最后,需要在服务器端接收并处理文件上传的请求。可以使用`multer`模块来处理文件上传:
```
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.array('file', 2), (req, res) => {
console.log(req.files);
res.status(200).send('File uploaded successfully');
});
app.listen(8000, () => {
console.log('Server started on port 8000');
});
```
上面的示例代码为使用Express框架,当有文件上传请求时,会将文件保存到`uploads/`目录下,并打印上传的文件信息到控制台。
这就是使用Node.js中的FormData实现多文件上传的简单示例。