반응형

간단한 파일 압축 및 다운로드 코드
/* 다운로드 Zip */
@RequestMapping("/downloadZip.do")
public void downloadZip(@RequestParam Map<String, Object> paramMap, HttpSession session, HttpServletResponse response) throws Exception {
//압축할 파일
String[] fileList = {"C:/Users/kyung/Desktop/테스트첨부파일/TTTTT.txt"
,"C:/Users/kyung/Desktop/테스트첨부파일/test.PNG"
,"C:/Users/kyung/Desktop/테스트첨부파일/TESTPDF.pdf"};
//생성되는 zip 파일명
String fileName ="makeZipFile";
response.setContentType("application/octet-stream");
fileName = URLEncoder.encode(fileName,"UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"),"8859_1")+".zip" + ";");
response.setStatus(HttpServletResponse.SC_OK);
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
for (String files : fileList) {
Path src = Paths.get(files);
try (FileInputStream fis = new FileInputStream(src.toFile())) {
ZipEntry zipEntry = new ZipEntry(src.getFileName().toString());
zos.putNextEntry(zipEntry);
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
결과


반응형
'JAVA' 카테고리의 다른 글
[JAVA] @SuppressWarnings 란? (0) | 2022.07.20 |
---|---|
[JAVA] Enumeration 세션값 출력 (0) | 2022.02.25 |
[JAVA] String 문자열 따옴표(") 넣기 (0) | 2022.02.22 |
[JAVA] Random 사용하여 임시 비밀번호 생성 (0) | 2022.01.14 |
[JAVA] Iterator 와 Enumeration (0) | 2022.01.11 |
댓글