Springboot+MultipartFile实现单文件,多文件批量上传过程

 更新时间:2025年07月24日 16:16:10   作者:抹香鲸之海  
在Spring Boot中,若需Swagger显示文件上传按钮,需使用@Consumes注解指定Content-Type(如multipart/form-data),以告知接口接受文件类型,此注解帮助Swagger正确识别请求参数,确保功能展示完整

Springboot+MultipartFile单文件多文件批量上传

代码:

    /**
     * 文件上传请求
     */
    /**
     * 文件上传请求
     */
    @PostMapping(value ="upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    @ApiOperation(value = "文件上传请求")
    public R<SysFile> upload(@RequestPart("file") MultipartFile file)
    {
        try
        {
            // 上传并返回访问地址
            String url = sysFileService.uploadFile(file);
            SysFile sysFile = new SysFile();
            sysFile.setName(FileUtils.getName(url));
            sysFile.setUrl(url);
            return R.ok(sysFile);
        }
        catch (Exception e)
        {
            log.error("上传文件失败", e);
            return R.fail(e.getMessage());
        }
    }

    /**
     * 批量上传
     * @param files
     * @return
     */
    @PostMapping(value ="batchUploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    @ApiOperation(value = "文件上传请求")
    public R<JSONArray> batchUploadFile(@RequestPart("files") MultipartFile[] files)
    {
        try
        {
            JSONArray jsonArray=new JSONArray();

            for(MultipartFile file : files) {//循环单个上传
                // 上传并返回访问地址
                String url = sysFileService.uploadFile(file);
                SysFile sysFile = new SysFile();
                sysFile.setName(FileUtils.getName(url));
                sysFile.setUrl(url);
                jsonArray.add(sysFile);
            }
            return R.ok(jsonArray);
        }
        catch (Exception e)
        {
            log.error("上传文件失败", e);
            return R.fail(e.getMessage());
        }
    }

Springboot里面要用这个标签接受文件,不然swagger上可能没有按钮。

@PostMapping(value ="upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)

consumes直译是消费者,其实就是限制方法处理指定Content-Type的http请求

常见的媒体格式类型

如下:

  • text/html:HTML格式
  • text/plain:纯文本格式
  • text/xml:XML格式
  • image/gif:gif图片格式
  • image/jpeg:jpg图片格式
  • image/png:png图片格式
  • application/xhtml+xml:XHTML格式
  • application/xml:XML数据格式
  • application/atom+xml:Atom XML聚合格式
  • application/json:JSON数据格式
  • application/pdf:pdf格式
  • application/msword:Word文档格式
  • application/octet-stream:二进制流数据(如常见的文件下载)
  • application/x-www-form-urlencoded:<form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
  • multipart/form-data:需要在表单中进行文件上传时,就需要使用该格式

Swagger验证一下


总结

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

相关文章

  • Java集合系列之HashMap源码分析

    Java集合系列之HashMap源码分析

    这篇文章主要为大家详细介绍了Java集合系列之HashMap源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • java教程之对象序列化使用基础示例详解

    java教程之对象序列化使用基础示例详解

    所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象,下面详细介绍一下java对象的序列化使用方法
    2014-01-01
  • java同步器AQS架构AbstractQueuedSynchronizer原理解析下

    java同步器AQS架构AbstractQueuedSynchronizer原理解析下

    这篇文章主要为大家介绍了java同步器AQS架构AbstractQueuedSynchronizer原理解析下,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • java图片压缩工具类

    java图片压缩工具类

    这篇文章主要为大家详细介绍了java图片压缩工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 解决maven项目tomcat启动失败war exploded:Error during artifact deploym问题

    解决maven项目tomcat启动失败war exploded:Error during 

    在SpringMVC项目中,使用war和warexploded两种部署方式可能会导致不同的路径问题,从而出现404错误,war模式将项目打包上传,而warexploded模式则保持文件夹结构上传,开发时建议使用warexploded模式,方便利用Update classes and resources功能自动更新
    2024-10-10
  • java实现电脑定时关机的方法

    java实现电脑定时关机的方法

    这篇文章主要介绍了java实现电脑定时关机的方法,首先通过java注册windows服务程序,再以一个简单的java程序实现定时关机的功能,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • 浅谈对象与Map相互转化

    浅谈对象与Map相互转化

    这篇文章主要介绍了利用BeanMap进行对象与Map的相互转换,在文中列举了完整代码,需要的朋友可以参考下。
    2017-09-09
  • win10设置java环境变量的方法

    win10设置java环境变量的方法

    下面小编就为大家带来一篇win10设置java环境变量的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • java常用工具类 UUID、Map工具类

    java常用工具类 UUID、Map工具类

    这篇文章主要为大家详细介绍了Java常用工具类,包括UUID工具类、Map工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • IDEA新建bootstrap.yml文件不显示叶子图标的问题

    IDEA新建bootstrap.yml文件不显示叶子图标的问题

    这篇文章主要介绍了IDEA新建bootstrap.yml文件不显示叶子图标的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论