通过生成临时文件进行压缩打包下载
1.生成下载所需文件
根据自己情况,我是将字符串通过FileWriter在项目路径的static中直接生成文件
public static void createFile(String string,String path,String name) throws IOException{
File file=new File(path);
if(!file.exists()){//如果文件夹不存在
file.mkdirs();//创建文件夹
}
FileWriter fileWriter= null;
fileWriter = new FileWriter(path+File.separator+name);
fileWriter.write(string);
fileWriter.flush();
fileWriter.close();
}
2.生成一个临时zip压缩包,将所需文件读入压缩包
File fileZip = new File(AllPath.getZippath());
FileOutputStream outStream = new FileOutputStream(fileZip);
ZipOutputStream toClient = new ZipOutputStream(outStream);
Tool.compress(new File(AllPath.getFilePath()), toClient, "", true);
toClient.close();
outStream.close();
// 下载,并删除临时文件zip
Tool.downloadFile(AllPath.getFilename(),fileZip, response, true);
工具类如下:采用的递归,一个个读写,,有些路径由于手动拼接的可能要少斜线,容易压缩出来没文件层次!
/**
* 递归压缩方法
* @param sourceFile 源文件
* @param zos zip输出流
* @param name 压缩后的名称
* @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构;
*

该博客介绍如何在SpringBoot应用中通过生成临时文件并压缩打包来实现下载功能。首先,在静态资源目录生成下载文件,然后创建一个临时ZIP压缩包并将文件添加进去。最后,提供下载链接并按需删除生成的文件。注意,路径处理可能导致在不同环境下出现问题。作者欢迎读者提出建议和指正。
最低0.47元/天 解锁文章
1485

被折叠的 条评论
为什么被折叠?



