首页 > 解决方案 > 在Angular 8中使用files.upload将文件上传到slack api时获得'invalid_form_data'响应

问题描述

我正在使用表单来收集包括文件在内的信息,并且我正在尝试在提交时将该文件上传到松弛通道。我已尝试使用此答案中的建议:https ://stackoverflow.com/a/47597472/8429996 ,但仍然得到相同的错误响应“invalid_form_data”。我使用 postMessage 方法成功发送了一条消息,但我想从用户系统附加一个文件并使用 files.upload 直接上传到 slack。这可能吗?

这是代码:

upload(e) {
  this.file = e.target.files[0];

  const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'multipart/form-data'
    })
  };

  var formData = new FormData();
  formData.append('token', SLACK_TOKEN);
  formData.append('channels', SLACK_CHANNELS);
  formData.append('file', this.file);


  this.http.post<any>('https://slack.com/api/files.upload', formData, httpOptions).subscribe(
    resp => { console.log(resp) },
    error => { console.log(error) }
  );
}

测试文件对象如下所示:

File: {
  lastModified: 1606970395000
  lastModifiedDate: Wed Dec 02 2020 23:39:55 GMT-0500 (Eastern Standard Time) {}
  name: "IMG_0320.HEIC"
  size: 1206160
  type: "image/heic"
  webkitRelativePath: ""
}

标签: javascriptangulartypescriptslackslack-api

解决方案


想通了...只是删除了标题并且它起作用了。


推荐阅读