我无法使用 multer 上传 2 个文件

I can't upload 2 files using multer

我有 2 个文件(1 个视频和 1 个图像),我想使用 multer 将其上传到我的服务器 这是我的反应代码:

const data = new FormData();
data.append('banner', this.state.banner);
data.append('preview', this.state.preview);

axios.post('/lesson', data).then(() => {})
<div>
  <input type="file" id='file1' onChange={this.handleUploadFile1} />
  
  <input type="file" id='file2' onChange={this.handleUploadFile2} />
</div>

这是我的服务器代码:

router.post('/lesson', upload.single('banner'), upload.single('preview'),controller.addLesson)

然后我得到这个错误:

MulterError: Unexpected field

请帮我解决这个问题

您应该使用 upload.any()upload.array() 而不是 upload.single()

此外,您可以这样做:

let multerWithFields = upload.fields([{ name: 'banner', maxCount: 1 }, { name: 'preview', maxCount: 1 }]) 
router.post('/lesson', multerWithFields, controller.addLesson) 

See the docs.