/**
* Description:
* Date: 2017年1月10日 上午10:40:36
*
* @version
* @see
*/
@Controller
@RequestMapping("/admin/download")
public class DownloadImagesController {
/**
*
* Description: 下载压缩包
*
* @param imgs
* @param memberName
* @param response
* @throws Exception
*/
@RequestMapping(value = "/downLoadZipFile")
public void downLoadZipFile(@RequestParam("imgs") String imgs, @RequestParam("memberName") String memberName,
HttpServletResponse response) throws Exception {
String[] img = imgs.split(",");
// 定义根路径
String rootPath = PlatformConstants.IMG_DISK_PATH;
String zipName = memberName + ".zip";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=" + zipName);
ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
try {
for (int i = 0; i < img.length; i++) {
ImagesDownloadUtil.zipFile(rootPath + "/" + img[i], out);
response.flushBuffer();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}
}
/**
* Description:
* Date: 2017年1月10日 上午10:44:07
*
* @author vnilk
* @version
* @see
*/
public class ImagesDownloadUtil {
/**
*
* Description: 压缩工具类
*
* @author vnilk
* @param fileName
* @param out
* @throws Exception
*/
public static void zipFile(String fileName, ZipOutputStream out) throws Exception {
File file = new File(fileName);
if (file.exists()) {
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(file);
out.putNextEntry(new ZipEntry(file.getName()));
int len = 0;
// 读入需要下载的文件的内容,打包到zip文件
while ((len = fis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.flush();
out.closeEntry();
fis.close();
}
}
}