【问题标题】:Unable to upload file using Angular/Spring无法使用 Angular/Spring 上传文件
【发布时间】:2021-04-07 21:18:15
【问题描述】:

标题说明了一切。

我需要将文件/文档上传到 BE,但我就是无法正确处理!

角度服务

public saveFile(file: File): Observable<any> {
        const formData = new FormData();
        formData.append('file', file);
        
        return this.http
            .post<FormData>(`${environment.apiUrl}/save-file`, formData)
            .pipe(first());
    }

弹簧控制器

 @PostMapping(value = "/save-file")
    public ResponseEntity<Object> saveFile(@RequestParam("file") MultipartFile file) {

        System.out.println(file);

        return null;
    }

我已经尝试了很多其他配置,比如设置标题

"Content-Type": "multipart/form-data"

错误信息总是一样的:

Current request is not a multipart request

【问题讨论】:

    标签: angular spring multipartform-data angular-httpclient


    【解决方案1】:

    如果您的请求正文是 instanceof FormData Angular,请为您添加该标头。而且你不需要添加标题。

    我认为您有拦截器配置来为您的所有 http 请求添加一些标头。 尝试将此条件添加到您的拦截器类中:

            if (!request.headers.has("Content-Type") && !(request.body instanceof FormData)) {
                request = request.clone({
                   headers: request.headers.set("Content-Type", "application/json")
                });
            }
    

    【讨论】:

    • 惊人的演绎伙伴。就在现场!非常感谢!!!
    猜你喜欢
    • 2019-06-25
    • 2015-11-09
    • 2019-06-28
    • 2016-06-21
    • 2020-11-28
    • 2017-11-02
    • 2017-12-30
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多