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文件内容报错问题
