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

How to post multipart/form-data from Angular to Nodejs Multer?

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

Error: Multipart: Boundary not found status:500

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

Angular:

// 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);

删除你的 'Content-Type': 'multipart/form-data' header 它应该可以工作。

我遇到了同样的错误,这是由于 multipart/form-data 之后缺少 boundary=..,就像下面的工作请求:

当您删除 header 时,浏览器会自动将其添加到 boundary=.. 并且它有效。

在 header 中添加 Content-Type': 'file' 应该可以工作