nodejs express读取前端发送到formData文件流
时间: 2024-03-09 19:49:16 浏览: 163
可以使用 `multer` 中间件来实现在 `express` 中读取前端发送的 `formData` 文件流。以下是示例代码:
首先,安装 `multer`:
```
npm install multer
```
然后在 `express` 的路由中使用 `multer` 中间件:
```javascript
const express = require('express');
const multer = require('multer');
const app = express();
// 创建一个 multer 实例,配置上传的参数
const upload = multer({ dest: 'uploads/' });
// 处理文件上传的路由
app.post('/upload', upload.single('file'), (req, res) => {
// req.file 是 'file' 文件的信息
// req.body 将具有文本域数据,如果存在的话
console.log(req.file);
res.status(200).json({ message: '文件上传成功' });
});
app.listen(3000, () => {
console.log('服务已启动');
});
```
在前端,可以使用 `FormData` 对象来创建一个包含文件数据的表单,然后使用 `XMLHttpRequest` 对象将表单数据发送到服务器:
```javascript
const fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', () => {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/upload');
xhr.send(formData);
});
```
注意,在这个例子中,上传的文件会保存在 `uploads/` 目录中。可以根据自己的需求修改这个路径。
阅读全文