JavaScript - 从 json 对象创建一个文件并在 FormData 中使用它

Eli*_*ssy 1 javascript multipartform-data form-data typescript angular

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

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

 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);}
Run Code Online (Sandbox Code Playgroud)

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

Eli*_*ssy 5

嗯,我已经找到了解决方案。在打字稿中,您可以创建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);
Run Code Online (Sandbox Code Playgroud)