java - 所需的请求部分 'file' 不存在。尝试上传图像, Angular -> Spring

标签 java angular spring rest multipart

我在 spring-boot API 中有我的端点用于上传图像。它与 postman 一起工作正常,但如果我想从我的 Angular 应用程序发送请求,我会收到代码 400“所需的请求部分‘文件’不存在”。

我认为问题出在我的 Angular 代码中。

我的端点

@PostMapping(value = "/private/image/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public BasicImgurResponse uploadProfilePicture(@RequestParam(name = "file") MultipartFile file){
    try {
        return service.uploadProfilePicture(file);
    } catch (IOException ex) {
        Logger.getLogger(ImgurController.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

我的 Angular 服务方法

uploadAvatar(data: any){
    let file = new FormData();
    file.append('file',data);
    return this.http.post<any>(environment.api_endpoint+'/private/image/avatar',file);
}

headers

params

最佳答案

可能数据对象为空?确保数据对象包含输入文件。

如果没有 Angular,命令如下:

formData.append('file', $('input[type=file]')[0].files[0]); 

关于java - 所需的请求部分 'file' 不存在。尝试上传图像, Angular -> Spring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57251247/

相关文章:

AngularFire Firestore 属性 'map' 在类型 'Action<DocumentSnapshot<any>>' 上不存在

javascript - 如何将 ngFor 处理的列表中的项目与 ngIf 的另一个列表匹配

javascript - Spring MVC 与 Mustache 发送字符串变量。

java - 更改@ConfigurationProperties 中的分隔符以读取列表属性

java - 将值从 ftl 页面传递到 servlet Controller

java - 如何使用三层架构和 SQL Server 制作登录表单?

java - 如何检测 JMX 代理是否正在运行,以及使用哪个端口?

javascript - 无法获得 Angular 5 的响应标题

java - 如何在应用程序点击按钮设置上显示 Admob 插页式广告

java - org.apache.kafka.common.errors.UnknownTopicOrPartitionException : This server does not host this topic-partition 错误