如何解决前端上传Formdata中的file为[object Object]的问题

 更新时间:2024年07月20日 15:06:52   作者:ZhongruiRao  
文件上传是Web开发中常见的功能之一,下面这篇文章主要给大家介绍了关于如何解决前端上传Formdata中的file为[object Object]问题的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

项目场景:

  • 前端:Vue3 + ts + elementui plus
  • 后端:springboot

问题描述

在前端上传form表单时,上传的数据为[object Object]

同时后端报错:

org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present

原因分析:

后端代码:

 public ResponseData<?> importGeoData(@RequestParam("parentAdcode") @NotNull String parentAdcode,
                                         @RequestParam("file") MultipartFile file) throws Exception {
        GeoUploadRequest uploadRequest = new GeoUploadRequest();
        uploadRequest.setParentAdcode(parentAdcode);
        uploadRequest.setFile(file);
        return getResult(geoDataService.importGeoData(uploadRequest));
    }

由于apifox中上传正常,所以排除后端问题,检查前端代码

查看前端代码:

const file = uploadFileList.value[i];
    console.log(file)
    formData2.append('file', file);
    formData2.append('parentAdcode', formData.parentAdcode);
    importObjects(formData2).then(res=>{
      ElMessage.success('导入成功')
    })

这里打印的file:

发现file内部还有一个raw属性,我们要上传的是这个raw里面的内容

解决方案:

更改前端代码如下:

const file = uploadFileList.value[i];
    formData2.append('file', toRaw(file.raw));
    formData2.append('parentAdcode', formData.parentAdcode);
    importObjects(formData2).then(res=>{
      ElMessage.success('导入成功')
    })

再次查看payload:

发送的数据正确,同时后端正确处理请求

总结

到此这篇关于如何解决前端上传Formdata中的file为[object Object]问题的文章就介绍到这了,更多相关前端上传Formdata中file为[object Object]内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue点击单张图片放大实现步骤(纯js)

    vue点击单张图片放大实现步骤(纯js)

    这篇文章主要给大家介绍了关于vue点击单张图片放大实现的相关资料,在vue项目中实现点击图片放大功能相信对大家来说都不陌生,文中给出了详细的js示例代码,需要的朋友可以参考下
    2023-07-07
  • vue路由跳转传递参数的方式总结

    vue路由跳转传递参数的方式总结

    在本篇文章和里小编给各位总结了关于vue路由跳转传递参数的三种方式以及相关代码,需要的朋友们可以学习下。
    2020-05-05
  • vue 条件渲染v-if和v-show

    vue 条件渲染v-if和v-show

    这篇文章主要介绍了vue 条件渲染v-if和v-show,在模板中,可以根据条件进行渲染。条件用到的是v-if、v-else-if以及v-else来组合实现的,有时候我们想要在一个条件中加载多个html元素,那么我们可以通过template元素上实现,下面就来看看具体实现吧
    2021-10-10
  • 一篇文章带你彻底搞懂VUE响应式原理

    一篇文章带你彻底搞懂VUE响应式原理

    这篇文章主要介绍了一篇文章带你彻底搞懂VUE响应式原理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可任意参考一下,需要的朋友可以参考下
    2022-06-06
  • vue data变量相互赋值后被实时同步的解决步骤

    vue data变量相互赋值后被实时同步的解决步骤

    这篇文章主要介绍了vue data变量相互赋值后被实时同步的解决步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue实现动态显示表单项填写进度功能

    Vue实现动态显示表单项填写进度功能

    这篇文章主要介绍了Vue实现动态显示表单项填写进度功能,此功能可以帮助用户了解表单填写的进度和当前状态,提高用户体验,通常实现的方式是在表单中添加进度条,根据用户填写状态动态更新进度条,感兴趣的同学可以参考下文
    2023-05-05
  • ElementUI下拉组件el-select一次从后端获取选项并设置默认值方式

    ElementUI下拉组件el-select一次从后端获取选项并设置默认值方式

    这篇文章主要介绍了ElementUI下拉组件el-select一次从后端获取选项并设置默认值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Vue前端页面版本检测解决方案

    Vue前端页面版本检测解决方案

    本文主要介绍了Vue前端页面版本检测解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-02-02
  • 在Vue中使用echarts的实例代码(3种图)

    在Vue中使用echarts的实例代码(3种图)

    本篇文章主要介绍了在Vue中使用echarts的实例代码(3种图),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Vue 2源码解析Parse函数定义

    Vue 2源码解析Parse函数定义

    这篇文章主要为大家介绍了Vue 2源码解析Parse函数定义,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论