You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Endpoint接收文件时出现Unsupported Media Type错误求助

Spring Endpoint接收文件时出现Unsupported Media Type错误求助

兄弟,我之前也踩过这个坑,给你几个实用的排查方向,应该能解决问题:

  • 检查端点的consumes配置是否完整
    你遇到的错误提示里的MIME类型带了;charset=UTF-8,大概率是这个细节没覆盖到。可以把consumes属性同时包含带和不带charset的两种格式,比如:

    @PostMapping(value = "/your-endpoint", consumes = {
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8"
    })
    

    这样就能匹配到请求里的两种Content-Type情况了。

  • 确认请求的发送方式是否正确

    • 用Postman测试时,一定要选择form-data格式,Key类型设为file,然后上传你的docx文件,不要手动修改Content-Type,让Postman自动生成。如果之前手动加过charset参数,记得去掉试试。
    • Angular那边上传文件时,别手动设置Content-Type,直接用FormData让浏览器自动处理,示例代码如下:
      const formData = new FormData();
      formData.append('file', yourFileObject);
      // 如果需要传用户信息,直接append进去就行
      formData.append('user', JSON.stringify(userInfo));
      // 发送请求时不要额外设置headers
      this.http.post('/your-endpoint', formData).subscribe(...);
      
      手动设置multipart/form-data会丢失浏览器自动生成的boundary参数,反而会导致媒体类型不匹配。
  • 检查Spring的Multipart配置
    如果是Spring Boot项目,默认已经开启了Multipart支持,但可以确认下application.properties里的spring.servlet.multipart.enabled是不是设为true;如果是传统Spring MVC项目,需要手动配置MultipartResolver Bean:

    @Bean
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setMaxUploadSize(5 * 1024 * 1024); // 可根据需求调整上传大小限制
        return resolver;
    }
    
  • 核对端点的参数定义
    接收文件一定要用MultipartFile类型,同时如果还要接收用户信息,推荐用@RequestPart注解而不是@RequestParam,示例代码:

    public ResponseEntity<String> handleUpload(
        @RequestPart("file") MultipartFile file,
        @RequestPart("user") User user
    ) {
        // 你的业务处理逻辑
        return ResponseEntity.ok("文件接收成功");
    }
    

备注:内容来源于stack exchange,提问作者merman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:03:14