antd3 vue3 springboot 上传文件 解决Required request part ‘file‘ is not present

问题:

 前端代码

html

     <a-form-item name="upload" label="音/视频文件上传" extra="" >
                        <a-upload
                                v-model:file-list="fileList2"
                                :max-count="50"
                                multiple="'true"
                                :before-upload="beforeUpload2"
                                @remove="handleRemove2"
                                @change="handleUpload2"
                                action="/api/v1/file/upload"
                        >
                            <a-button>
                                <upload-outlined></upload-outlined>
                                点击上传(最大数量50)
                            </a-button>
                        </a-upload>
                    </a-form-item>

js


            const handleRemove2 = file => {
                const index = fileList2.value.indexOf(file)
                const newFileList = fileList2.value.slice()
                newFileList.splice(index, 1)
                fileList2.value = newFileList
            }

            const beforeUpload2 = file => {
                fileList2.value = [...fileList2.value, file]
                return false
            }

            const handleUpload2 = async () => {
                let that = this;
                const formData = new FormData()
                fileList2.value.forEach(file => {
                    console.log(file)
                    // 注意这里append的名字“file”,需要跟后端接受的名字是一样的
                    formData.append('file', file)
                })
                fileUpload(formData).then((res) => {
                    const data  = res.data;
               
                    if(res.status ==200 ){
              
                        formState.fileList.push( data.data);
                    
                        console.log(JSON.stringify("fileList",formState.fileList))
                    }else {
                        message.error("文件上传失败!");
                    }
                }).catch((error) => {
               
                });
            }

后端

   @PostMapping("upload")
    public CommonResult<Map> uploadFile(@RequestParam("file") MultipartFile file) {
        logger.info("文件上传!");

        CommonResult<Map> result = new CommonResult<Map>();
        try {
            Map<String, Object> upload = filesService.uploadFile(file);
            result.setData(upload);
            result.setCode(ResultConstants.SUCCESS);
        } catch (IOException e) {
            e.printStackTrace();
            result.setCode(ResultConstants.ERROR);
        }
        return result;
    }

以上代码会出现报错信息

2022-08-14 09:35:47.649  WARN 15092 --- [nio-8007-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]

解决办法:

将前端的js中的

handleUpload2

这部分代码的

formData.append('file', file)

修改为

formData.append('file', file.originFileObj)

问题得到解决

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当出现"Required request part 'file' is not present"错误时,通常是由于在文件上传接口中没有正确传递文件参数导致的。\[1\]这个错误信息表明请求中缺少名为'file'的必需文件参数。\[2\]在使用Postman测试时,确保在请求中正确设置了文件参数,并将其命名为'file'。\[2\]另外,还要确保请求的Content-Type设置为"multipart/form-data",以支持文件上传。如果仍然遇到问题,可以检查后台日志,查看是否有类似于"MissingServletRequestPartException"的警告信息,以获取更多的错误详情。\[3\] #### 引用[.reference_title] - *1* [springboot文件上传报错:Required request part ‘file‘ is not present](https://blog.csdn.net/Tianguoping/article/details/120507284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Springboot文件上传接口,一直报Required request part ‘zipFile‘ is not present的错误](https://blog.csdn.net/ylx1066863710/article/details/120652555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [antd3 vue3 springboot 上传文件 解决Required request part ‘file‘ is not present](https://blog.csdn.net/fly19920602/article/details/126328535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值