Springboot接收文件报错Required request part‘file‘is not present问题分析及解决

 更新时间:2025年12月01日 09:23:00   作者:酱油不配拉鸡  
文章总结:在Flutter和Vue项目中遇到文件上传问题,后端接口Controller定义无误,但前端通过FormData封装上传文件时报错,通过浏览器抓包和PostMan测试,发现后台确实可以接收参数,最终通过修改封装的file为file.raw解决问题,解决了文件上传不成功的问题

问题描述

之前在写Flutter 项目时曾经有个手写签名文件上传的需求,通过前端打印文件和网络抓包,确定了文件不为空,但是后台死活接收不到文件,最近写 Vue+elementplus 上传文件时又出现了同样的问题。

后端接口Controller定义代码如下:

@RequestMapping("/file")
public Result<?> saveFile(@RequestParam("groupName")String name,@RequestParam("file") MultipartFile file){
}

前端文件通过 FormData 封装

const formData = new FormData();
formData.append("groupName", this.newGroup.name)
formData.append("file", this.newGroup.file)

通过前端上传文件时报错,错误信息如下:

问题排查

浏览器抓包发现确实有文件对象

这里要确认参数名称和后台是否一致

PostMan

使用 PostMan 确定后台可以正常接收参数,接口没问题

解决方法

网上搜索到了各种解决方案,在我这里都无效,包括什么存在多个相同的文件名称、修改请求头配置等。

最后通过修改封装的 filefile.raw 解决问题。

const formData = new FormData();
formData.append("groupName", this.newGroup.name)
formData.append("file", this.newGroup.file.raw)

总结

感兴趣可以研究一下 file file.raw 的坑。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决MybatisPlus批量插入数据报错:Error getting generated key or setting result to parameter object问题

    解决MybatisPlus批量插入数据报错:Error getting generated 

    在使用MybatisPlus进行批量插入数据时遇到空指针异常错误,分析原因是由于主键生成策略导致的,尝试通过设置useGeneratedKeys属性解决问题,但因批量插入方法限制,该方法未能成功,最终通过自定义mapper方法实现批量插入,解决了问题
    2024-09-09
  • Spring Security 核心过滤器链讲解

    Spring Security 核心过滤器链讲解

    这篇文章主要介绍了Spring Security 核心过滤器链,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java操作Word文档的全攻略(读取doc与docx文件)

    Java操作Word文档的全攻略(读取doc与docx文件)

    在当今办公自动化和文档处理场景中,Java开发者经常需要处理Word文档(.doc和.docx格式),无论是数据提取、文档转换还是内容分析,掌握高效的Word文档操作技术至关重要,本文将全面介绍Java中读取两种主流Word格式的技术方案、核心API和最佳实践,需要的朋友可以参考下
    2025-07-07
  • Java关于含有继承类的成员初始化过程讲解

    Java关于含有继承类的成员初始化过程讲解

    今天小编就为大家分享一篇Java关于含有继承类的成员初始化过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • SpringBoot+Redis实现分布式缓存的方法步骤

    SpringBoot+Redis实现分布式缓存的方法步骤

    在高并发的分布式的系统中,缓存是提升系统性能的重要手段,本文主要介绍了SpringBoot+Redis实现分布式缓存的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Java中的内存模型JMM详细解读

    Java中的内存模型JMM详细解读

    这篇文章主要介绍了Java中的内存模型JMM详细解读,Java 对内存的抽象模型如下,每个线程都有一块自己的私有内存(也称为工作内存),当线程使用变量时,会把主内存里面的变量复制到工作内存,线程读写变量时操作的是自己工作内存中的变量,需要的朋友可以参考下
    2023-12-12
  • 如何解决LocalDateTime传值JSON格式化问题

    如何解决LocalDateTime传值JSON格式化问题

    这篇文章主要介绍了如何解决LocalDateTime传值JSON格式化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java中如何比较两个数组中元素是否相同

    Java中如何比较两个数组中元素是否相同

    比较两个数组中的元素是否相同,在项目中经常会使用到,下面与大家分享个最简单的方法
    2014-06-06
  • Java设计模式:组合模式

    Java设计模式:组合模式

    这篇文章主要介绍了快速理解Java设计模式中的组合模式,具有一定参考价值,需要的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • java面试LruCache 和 LinkedHashMap及算法实现

    java面试LruCache 和 LinkedHashMap及算法实现

    这篇文章主要为大家介绍了java面试LruCache 和 LinkedHashMap及算法实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论