【问题标题】:JavaScript - create a file out of json object and use it in a FormDataJavaScript - 从 json 对象创建一个文件并在 FormData 中使用它
【发布时间】:2018-06-10 13:49:54
【问题描述】:

我正在尝试通过提供文件内容而不是提供真实文件来模拟文件上传。

所以 - 我正在做这样的事情:

 uploadFile(jsonContent: string, otherParams: string) {

const formData = new FormData();
formData.append('jsonContent', data, 'fileName.json');
formData.append('deal_id', dealId);

return this.http.post(this.base_url + '/files', formData);}

我没有看到正在发送到 API 的内容。 有什么建议吗?我做错了什么?

【问题讨论】:

  • 我可以在 formData.append('jsonContent', data, 'fileName.json'); 中看到你的数据变量值吗?
  • @sorxrob 它只是一个 js 对象...{name: 'foo'}

标签: javascript angular typescript multipartform-data form-data


【解决方案1】:

嗯,我已经找到了解决方案。 在 typescript 中,您可以创建 new File() 并将 blob 对象传递给它。

现在您可以在客户端创建一个文件并将其作为 FormData 的一部分发送。

代码如下:

    const st = JSON.stringify(json);

    const blob = new Blob([st], { type: 'application/json' });

    const file = new File([ blob ], 'FileName.json');

    const formData = new FormData();
    formData.append('file', file, 'FileName.json');
    formData.append('deal_id', dealId);

【讨论】:

    【解决方案2】:

    尝试将其添加到您的标题中

    const headers = {
      processData: false,
      contentType: false 
    }
    
    this.http.post(this.base_url + '/files', formData, headers)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 2018-04-11
      • 2012-12-28
      相关资源
      最近更新 更多