ฉันไม่สามารถอัพโหลด 2 ไฟล์โดยใช้ 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: ฟิลด์ที่ไม่คาดคิด

โปรดช่วยฉันด้วยว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร


person Mahdi    schedule 23.01.2019    source แหล่งที่มา


คำตอบ (1)


คุณควรใช้ upload.any() หรือ upload.array() แทน upload.single()

นอกจากนี้ คุณสามารถทำสิ่งนี้ได้:

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

ดูเอกสาร

person F0G    schedule 23.01.2019
comment
โปรดช่วยฉันที่นี่หากคุณสามารถ ชื่อฟิลด์เหมือนกัน">stackoverflow.com/questions/55716774/ - person Sameer Kamran; 17.04.2019