JavaScript - 从 json 对象创建一个文件并在 FormData 中使用它
JavaScript - create a file out of json object and use it in a FormData
我正在尝试通过提供文件内容而不是提供真实文件来模拟文件上传。
所以 - 我正在做这样的事情:
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 的内容。
有什么建议吗?我做错了什么?
尝试将此添加到您的 headers
const headers = {
processData: false,
contentType: false
}
this.http.post(this.base_url + '/files', formData, headers)
好吧,我已经找到了解决方案。
在打字稿中,您可以创建 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);
我正在尝试通过提供文件内容而不是提供真实文件来模拟文件上传。
所以 - 我正在做这样的事情:
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 的内容。 有什么建议吗?我做错了什么?
尝试将此添加到您的 headers
const headers = {
processData: false,
contentType: false
}
this.http.post(this.base_url + '/files', formData, headers)
好吧,我已经找到了解决方案。
在打字稿中,您可以创建 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);