Servlet&JSP 파일다운로드 jsp 우혁이 아빠 2011. 9. 29. 19:19 <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" import="java.io.*"%> <% request.setCharacterEncoding("euc-kr"); //String file_name = Utils.nullToStr(request.getParameter("file_name")); // 파일이름 //String file_location = Utils.nullToStr(request.getParameter("file_location")); //저장된 파일 경로 String file_name = "PERIODWINNERLIST_.xls"; String file_location = "C:/temp/"; InputStream in = null; OutputStream os = null; File file = null; boolean skip = false; String client = ""; String target = file_name; String source = file_name; if( target==null || source==null ) return; try { try { file = new File(file_location, source); in = new FileInputStream(file); } catch( FileNotFoundException fe ) { skip = true; } response.reset() ; client = request.getHeader("User-Agent"); response.setContentType("application/x-msdownload;"); response.setHeader("Content-Description", "JSP Generated Data"); if( !skip ) { if(client.indexOf("MSIE 5.5") != -1) { response.setHeader("Content-Type", "doesn/matter; charset=euc-kr"); response.setHeader("Content-Disposition", "filename=" + new String(target.getBytes("euc-kr"),"ISO8859_1")); } else { response.setHeader ("Content-Disposition", "attachment; filename=" + new String(target.getBytes("euc-kr"),"ISO8859_1")); } response.setHeader ("Content-Length", ""+file.length() ); out.clear(); out = pageContext.pushBody(); os = response.getOutputStream(); byte b[] = new byte[(int)file.length()]; int leng = 0; while( (leng = in.read(b)) > 0 ) { os.write(b,0,leng); } } else { response.setContentType("text/html;charset=euc-kr"); out.println("<script language='javascript'>"); out.println("alert('선택하신 파일을 찾을 수 없습니다');"); out.println("history.back();"); out.println("</script>"); } in.close(); os.close(); } catch( Exception e ) { System.out.println(e); } %> <IFRAME name=TaskFrame id=TaskFrame style="WIDTH: 1; HEIGHT: 1" src="about:blank" frameBorder=1></IFRAME> 저작자표시