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 的坑。

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

相关文章

  • Java数据结构之平衡二叉树的原理与实现

    Java数据结构之平衡二叉树的原理与实现

    平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。本文将详细介绍平衡二叉树的概念和实现原理以及它的实现
    2022-01-01
  • SpringBoot实现前后端、json数据交互以及Controller接收参数的几种常用方式

    SpringBoot实现前后端、json数据交互以及Controller接收参数的几种常用方式

    这篇文章主要给大家介绍了关于SpringBoot实现前后端、json数据交互以及Controller接收参数的几种常用方式,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • MyBatis-Plus中提供的各种注解详细说明

    MyBatis-Plus中提供的各种注解详细说明

    这篇文章主要介绍了MyBatis-Plus中提供的各种注解详细说明,下面对MyBatis-Plus提供的注解进行整理,本文提供了部分示例代码以方便理解,需要的朋友可以参考下
    2023-11-11
  • java中JSqlParser的使用

    java中JSqlParser的使用

    JSqlParse是一款很精简的sql解析工具,它可以将常用的sql文本解析成具有层级结构的语法树,本文主要介绍了java中JSqlParser的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Java使用EasyExcel操作读写excel方式

    Java使用EasyExcel操作读写excel方式

    这篇文章主要介绍了Java使用EasyExcel操作读写excel方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Java 并发编程ArrayBlockingQueue的实现

    Java 并发编程ArrayBlockingQueue的实现

    这篇文章主要介绍了Java 并发编程ArrayBlockingQueue的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java实现文件的加密解密功能示例

    Java实现文件的加密解密功能示例

    这篇文章主要介绍了Java实现文件的加密解密功能,结合具体实例形式详细分析了java针对文件的读取、判断、加密、解密等相关步骤与操作技巧,需要的朋友可以参考下
    2017-10-10
  • Java foreach循环是否可以修改数据的值问题解决方法

    Java foreach循环是否可以修改数据的值问题解决方法

    最近在做项目的时候,需要修改一个数组里面各个元素的值,foreach循环迭代数组元素时,不能改变数组元素的值,这篇文章给大家介绍Java foreach循环是否可以修改数据的值的问题及解决方法,感兴趣的朋友一起看看吧
    2024-02-02
  • 详解SpringBoot中META-INF的作用与功能

    详解SpringBoot中META-INF的作用与功能

    SpringBoot开发的应用程序中,META-INF目录扮演着非常重要的角色,本文就来介绍一下 META-INF的作用及用处,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • Java httpClient连接池支持多线程高并发的实现

    Java httpClient连接池支持多线程高并发的实现

    本文主要介绍了Java httpClient连接池支持多线程高并发的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论