簡體   English   中英

Node.js上的Multer引發{錯誤:意外字段…}

[英]Multer on Node.js throws { Error: Unexpected field… }

我在ng2-file-upload中使用Angular。 我收到一個錯誤:

{ Error: Unexpected field
at makeError (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\multer\lib\make-error.js:12:13)
at wrappedFileFilter (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\multer\index.js:40:19)
at Busboy.<anonymous> (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\multer\lib\make-middleware.js:114:7)
at Busboy.emit (events.js:159:13)
at Busboy.emit (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\busboy\lib\main.js:38:33)
at PartStream.<anonymous> (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\busboy\lib\types\multipart.js:213:13)
at PartStream.emit (events.js:159:13)
at HeaderParser.<anonymous> (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\dicer\lib\Dicer.js:51:16)
at HeaderParser.emit (events.js:159:13)
at HeaderParser._finish (C:\Users\cDotsp27598345\Desktop\Projects\ZeoliteGlobal\node_modules\dicer\lib\HeaderParser.js:68:8)
  code: 'LIMIT_UNEXPECTED_FILE',
  field: 'file',
  storageErrors: [] }

這是我的組件的HTML :( addEvent函數將調用以下的uploadPicture函數。)

<form #f="ngForm"(ngSubmit)="addEvent(f.value)">
    <input type="file" name="pic" ng2FileSelect [uploader]="uploader"/>
    <button type="submit">Submit</button>
</form>

我的Angular組件:

  uploadPicture() {
    for (const item of this.uploader.queue) {
      if (!item.isUploaded) {
        item.upload();
      }
    }
  }

和上傳者:

  public uploader: FileUploader = new FileUploader({url: this.imgUpldURL, authToken: `Bearer ${localStorage.getItem('token')}`});

還有我的API端點(我使用的是動態ID,如果我提供的路徑沒有動態ID,則仍然無法使用):

const multer = require('multer');

router.post('/uploadEventImage', authCheck, (req, res) => {
    const id = req.body.id;
    const upload = multer({dest: 
    `../src/assets/images/news/${id}/`}).single('pic');
    console.log('called')
    upload(req, res, function (err) {
        if (err) {
            console.log(err);
          return res.end(err.toString());
        }
        console.log('done');
        res.end('File is uploaded');
      });    
});

這是我后端上所有的multer配置。 該請求已成功接收。 我在網上發現的大多數問題是由於輸入具有與.single('name')傳遞的名稱屬性不同的名稱屬性引起的,但是如您所見,這並沒有解決任何問題。

原來ng2-file-upload將所有字段的名稱設置為file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM