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请求
常见的媒体格式类型
如下:
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验证一下
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Springboot获取文件内容如何将MultipartFile转File
- Springboot MultipartFile文件上传与下载的实现示例
- Springboot 上传文件或头像(MultipartFile、transferTo)
- SpringBoot 利用MultipartFile上传本地图片生成图片链接的实现方法
- 关于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服务传输的问题
- 文件上传SpringBoot后端MultipartFile参数报空问题的解决办法
- 解决springboot 多线程使用MultipartFile读取excel文件内容报错问题