一起上传文件和json请求

时间:2018-03-20 13:42:25

标签: javascript angular angular2-services

我正在做一个角度4项目,我处于一种情况,我必须将文件上传到服务器。截至目前我在做什么

    let formData = new FormData();
    formData.append('file', this.files[0], this.files[0].name);
    let headers = new HttpHeaders();
    headers.delete('Content-Type');
    this.httpClient.post('url', formData, {headers: headers}).subscribe();

这很好,但我的问题是,我想发送一个字符串化的json以及具有我的文件映射的请求。我应该如何附加文件以及字符串化的json。我试过了

    let formData = new FormData();
    formData.append('file', this.files[0], this.files[0].name);
    formData.append('something', '{"vik":"maiya"}');
    let headers = new HttpHeaders();
    headers.delete('Content-Type');
    this.httpClient.post('url', formData, {headers: headers}).subscribe();

将请求有效负载创建为

------WebKitFormBoundarysJdQ94YacVJ9jwwP
Content-Disposition: form-data; name="file"; filename="NUM.json"
Content-Type: application/octet-stream


------WebKitFormBoundarysJdQ94YacVJ9jwwP
Content-Disposition: form-data; name="something"

{"vik":"maiya"}
------WebKitFormBoundarysJdQ94YacVJ9jwwP--

这是正确的方法吗?服务器是否能够解析请求的不同部分?如果不是理想的应该如何?请帮忙。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我最近尝试使用multipart标头发送json stringify对象和图像,但是服务器无法读取数据,因为现在它不是内容类型的JSON标头。

如果有任何人有好的工作我想学习情景。

解决方案:使用formdata附加属性发送字符串,服务器可以读取数据。