在 Angular 6 中使用 FormData 上传文件时出现问题

ajg*_*sme 4 form-data angular

我正在尝试构建一个文件上传系统,其中 UI 为 Angular 6,API 为 Lumen。当我直接使用 Postman 的 API 时,文件上传工作正常。但它不适用于 Angular UI。我正在使用 FormData 来处理上传,但 API 为我尝试上传的文件返回空值。

HTML:

<input type="file" name="document" (change)="onFileChanged($event.target.files)">
Run Code Online (Sandbox Code Playgroud)

角度代码:

public onFileChanged(files: any): void {
    var file = files[0];
    var fd = new FormData();
    fd.append('document', file);
    this.documentService
        .uploadDocument(this.id, fd)
        .subscribe(
            () => {
                console.log('success');
            },
            () => {
                console.log('failure');
            }
        );
}
Run Code Online (Sandbox Code Playgroud)

ajg*_*sme 6

好吧我发现问题了!

这是因为我使用的拦截器会向每个请求添加 JSON 标头,因此它将所有内容都转换为 JSON,这显然是行不通的。所以我只是删除了该标头并且它起作用了。