您的位置:首页 > 新闻 > 热点要闻 > 本地文件上传

本地文件上传

2025/11/15 16:56:20 来源:https://blog.csdn.net/qq_43049583/article/details/140904119  浏览:    关键词:本地文件上传

java本地文件上传

1、FileController

/*** @author: yc* @des:  文件接口* @date: 2024/8/4 11:11*/
@RestController
@RequestMapping("/file")
public class FileController {@Resourceprivate FileService fileService;@PostMapping("/upload")public Response<List<Map<String,String>>> upload(@RequestPart("req") FileUploadReq req, @RequestPart("fileList") List<MultipartFile> fileList){req.setFileList(fileList);return Response.builder(fileService.upload(req));}}

2、FileService

/*** @author: yc* @des:  文件上传接口定义* @date: 2024/8/3 10:04*/
public interface FileService {/*** @author: yc* @des:  文件上传到本地* @date: 2024/8/3 10:05*/List<Map<String,String>> upload(FileUploadReq req);}

3、FileServiceImpl

/*** @author: yc* @des:  文件存储接口实现* @date: 2024/06/07 16:09*/
@Service
public class ConfigFileStoreServiceImpl implements ConfigFileStoreService {/*** @author: yc* @des:  文件上传* @date: 2024/06/07 16:07*/@Overridepublic Result<List<FileAttributes>> uploadFiles(ReqBizCondition req) {if(Objects.isNull(req)){return Result.fail(RespBizCodeEnum.BIZ_10001.getCode(),"请求参数不能为空");}if(CollectionUtils.isEmpty(req.getFiles())){return Result.fail(RespBizCodeEnum.BIZ_10001.getCode(),"文件不能为空");}if(StringUtils.isBlank(req.getModeType())){return Result.fail(RespBizCodeEnum.BIZ_10001.getCode(),"前缀类型不能为空");}FilePixModeEnum e = EnumUtils.getValueOf(FilePixModeEnum.class, req.getModeType());if(Objects.isNull(e)){return Result.fail(RespBizCodeEnum.BIZ_10001.getCode(),"前缀类型错误");}List<FileAttributes> fileAttributesList = new ArrayList<>();for(MultipartFile multipartFile : req.getFiles()){Map<String, String> map = FileUtils.upload2local(multipartFile, req.getDataType(), req.getDataCode(), e);FileAttributes fileAttributes = new FileAttributes();fileAttributes.setFileName(map.get("fileName"));fileAttributes.setFilePath(map.get("filePath"));fileAttributes.setFileCategory(map.get("typeName"));fileAttributes.setFileModel(map.get("subName"));fileAttributes.setFileSize(Long.valueOf(map.get("fileSize")));fileAttributes.setFileStatus(1);fileAttributesList.add(fileAttributes);}return Result.data(fileAttributesList);}}

4、FileUploadReq

/*** @author: yc* @des:  文件上传请求* @date: 2024/8/3 10:09*/
@Data
public class FileUploadReq {/*** 前缀类型 默认不需要* TIMESTAMP = '时间戳',UUID = '随机字符串',NONE = '无需前缀'*/private String pix = "NONE";/*** 文件*/private List<MultipartFile> fileList;/*** 一级文件夹名称 可选*/private String dirName1;/*** 二级文件夹名称 可选*/private String dirName2;/*** 是否需要年/月/日 子文件夹 默认不需要*/private Boolean needYMD = Boolean.FALSE;}

5、FilePixModeEnum

/*** @author: yc* @des:  文件前缀模式枚举* @date: 2024/06/07 16:24*/
@Getter
@AllArgsConstructor
public enum FilePixModeEnum implements BaseEnum{TIMESTAMP("TIMESTAMP","时间戳"),UUID("UUID","随机字符串"),NONE("NONE","无需前缀");private String code;private String name;}

6、EnumUtils

枚举工具类

7、FileUtils

文件工具类

8、结果截图

8.1 postman

在这里插入图片描述

8.2结果

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com