public class DownloadFilesUtil { public static void exportedMd(List<com.gykj.base.system.model.File> list,String pathzip,HttpServletResponse response) { //生成zip文件存放位置 long timeMillis = System.currentTimeMillis(); String strZipPath = pathzip + timeMillis + ".zip"; File file = new File(pathzip); //文件存放位置目录不存在就创建 if (!file.isDirectory() && !file.exists()) { file.mkdirs(); } try { //通过response的outputStream输出文件 ServletOutputStream outputStream = response.getOutputStream(); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipPath)); for (int i = 0; i < list.size(); i++) { //循环加 out.putNextEntry(new ZipEntry(list.get(i).getFileName())); // 以流的形式下载文件。 InputStream input = new BufferedInputStream(new FileInputStream(list.get(i).getFilePath())); byte[] buffer = new byte[input.available()]; input.read(buffer); input.close(); // 读入需要下载的文件的内容,打包到zip文件 out.write(buffer); out.closeEntry(); } out.close(); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(strZipPath)); //将输入流的数据拷贝到输入流输出 FileCopyUtils.copy(bis, outputStream); } catch (IOException e) { e.printStackTrace(); } //删除文件或者文件夹下所有文件 removeDir(file); } private static void removeDir(File dir) { File[] files=dir.listFiles(); for(File file:files){ if(file.isDirectory()){ removeDir(file); }else{ file.delete(); } } } }
导出zip压缩包文件(包含多个文件)工具类
最新推荐文章于 2024-06-02 16:13:58 发布