【发布时间】:2019-07-29 13:07:47
【问题描述】:
我正在尝试通过 REST API 在服务器上上传文件。我的 api 请求 FormData 模型,但我收到 400 bad request 错误。
来自我在 devtools 中的请求的负载
------WebKitFormBoundaryvPiRGxMC3Ru3AoFA 内容处置:表单数据;名称=“文件”;文件名="test.jpg" 内容类型:image/jpeg
------WebKitFormBoundaryvPiRGxMC3Ru3AoFA--
来自我的文档的负载
文件:(二进制)
看看下面的一些代码。
上传.component.html
<input type="file" accept="image/*" (change)="onFileChange($event)">
上传.component.ts
uploadForm = this._fb.group({
profile: ['']
});
formData: FormData = new FormData();
...
onFileChange(event): void {
if (event.target.files && event.target.files.length) {
const file = event.target.files[0];
this.uploadForm.get('profile').setValue(file);
};
}
...
upload() {
this.formData.append('file', this.uploadForm.get('profile').value);
// API REQUEST
}
`
这是将我的输入值更改为FormData 的好方法吗?
【问题讨论】:
-
你遇到了什么错误?
-
400 bad requestpasteboard.co/IqdTuZ0.png 我的请求中的有效负载和我的文档中的有效负载pasteboard.co/IqdU0a0.png -
所有这些信息都应该出现在您的问题中。尽可能避免使用外部链接。
-
当然,我的错。已编辑。
-
问题已解决。 Http 标头
Content-Type被硬编码为application/json。但这应该取决于请求类型。谢谢@Ramachandran,你的提示很重要。
标签: angular typescript