当业务需要处理多个文件时,通过压缩包的形式可以提供更好的体验,例如需要一次下载多个文件或者类似发送附件到邮箱的功能。
我的情况是数据库字段存储的是文件地址,是一个数据的json字符串,这时需要以压缩包的形式将存储的文件封装返回。
这里获取到存储的json字符串,直接转成自定义实体类List,然后进行遍历,根据存储路径获取到文件资源,将文件放入ZipOutputStream流中,处理完后直接将流下载或者作为发送邮件的参数资源即可。
//获取实体类 拿到图片路径
Material material = materialServiceImp.getById(materialId);
if(ObjectUtil.isNotEmpty(material)){
//获取用户信息(邮箱)
UserInfoDTO userInfo = userClientService.getUserInfo(courseOrderRpcDTO.getUserId());
List<MaterialFile> materialFiles = null;
String materialFilePath = material.getFilePath();
try {
materialFiles = JsonUtils.jsonToArray(n