반응형
파일 다운로드 기본
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | // ajax 통신으로는 다운로드가 안되길래 요청 페이지에서 JS에 location.href = "다운로드경로?파라미터" 형식으로 해결 // 1.5 이후에서는 ajax로 다운로드 처리했었는데... // 참고로 자바버전 1.5에서 함 (이후 버전은 무지 쉽게 되는데 1.5는 왜이리 잘안되던지...) InputStream is = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null; File f = new File(filePath); if(!f.exists()) { %> <script type="text/javascript"> alert("파일이 존재하지않음.\n다운로드 실패\n관리자에게 문의바랍니다."); location.href = "${pageContext.request.contextPath}/manager/aSupportBusinessOnlineApply/supportBusinessOnlineApplyList.jsp"; </script> <% return; } String name = f.getName(); if(fileRealName == null) { fileRealName = name; } // 최근들어 이거 두줄안하면 에러남 이미 요청했다면서.. 그래서 비워주니 됨 out.clear(); out = pageContext.pushBody(); response.reset(); // 파일형식 정보 설정 response.setHeader("Content-Type", fileType + "; charset=UTF-8"); String encFileName = URLEncoder.encode(fileRealName, "UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + encFileName + ";"); response.setHeader ("Content-Length", ""+fileSize); response.setContentLength((int) fileSize); is = new FileInputStream(f); bis = new BufferedInputStream(is); bos = new BufferedOutputStream(response.getOutputStream()); byte[] buffer = new byte[(int)f.length()]; int length = 0; while((length = bis.read(buffer)) != -1) { bos.write(buffer, 0, length); } bos.flush(); if(bos != null) bos.close(); if(bis != null) bis.close(); if(is != null) is.close(); |
반응형
'Backend > Java' 카테고리의 다른 글
Struts2 textfield Null 인 경우 (0) | 2020.02.17 |
---|---|
게시판 번호 역순 출력 (0) | 2019.12.12 |
cos.jar 이용한 다중 업로드 및 파일명 변경 (0) | 2019.11.08 |
String Encoding Check (0) | 2019.09.26 |
Jar 압축 및 압축풀기 (0) | 2019.08.20 |