代码之家  ›  专栏  ›  技术社区  ›  Mahdi

我不能用multer上传2个文件

  •  0
  • Mahdi  · 技术社区  · 6 年前

    我有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:意外字段

    请帮我怎么解决这个问题

    1 回复  |  直到 6 年前
        1
  •  1
  •   loler    6 年前

    你应该使用 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 .