如何从Angular发布multipart / form-data到Nodejs Multer?

时间:2017-05-09 13:31:28

标签: node.js angular multipartform-data multer

来自Angular我想将一个图像作为Blob数据上传到nodeJS服务器。服务器在后端使用 multer 。图像文件由画布渲染生成。我从服务器收到以下错误:

  

错误:多部分:未找到边界状态:500

以下是我的代码。请帮我找出问题。

角:

// blob:Blob;   ->  it has valid image data.
var formData: FormData = new FormData();
formData.append('banner', blob, "my-file.png")

this.http.post(url,
    formData, { headers: new Headers({ 'Content-Type': 'multipart/form-data' }) })
    .toPromise()
    .then(res => {
      console.log(res);
      return res.json();
    })
    .catch(this.handleError);

的NodeJS:

router.post('/upload-banner-image', bannerImageUpload.single('banner'), watchfaceController.uploadWatchfaceBannerImage);

2 个答案:

答案 0 :(得分:7)

删除'Content-Type': 'multipart/form-data'标题,它应该有用。

我收到同样的错误,这是因为boundary=..之后的multipart/form-data丢失了,就像下面的工作请求一样: enter image description here

当您删除标题时,浏览器会自动使用boundary=..添加标题,并且可以正常使用。

答案 1 :(得分:1)

在标题中添加 Content-Type': 'file' 就可以了