java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot+MultipartFile单文件多文件批量上传

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

作者:抹香鲸之海

在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请求

常见的媒体格式类型

如下:

Swagger验证一下


总结

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

您可能感兴趣的文章:
阅读全文