您的位置:首页 > 编程语言 > Java开发

java web 图片下载自动打包

2017-02-04 00:00 471 查看
/**
* Description: <br/>
* Date: 2017年1月10日 上午10:40:36 <br/>
*
* @version
* @see
*/

@Controller
@RequestMapping("/admin/download")
public class DownloadImagesController {

/**
*
* Description: 下载压缩包<br/>
*

* @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: <br/>
* Date: 2017年1月10日 上午10:44:07 <br/>
*
* @author vnilk
* @version
* @see
*/
public class ImagesDownloadUtil {

/**
*
* Description: 压缩工具类<br/>
*
* @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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  下载