HTML 의 a링크로 다운로드파일을 설정하면 파일 다운로드가 아닌
페이지이동이 되어버리는 현상이 발생합니다.
이럴때 아래 jsp페이지로 링크를 걸어줘서 스트림으로 내보내는 방법입니다.
아래 페이지로 파일명과 경로를 파라미터로 넘기면 다운로드가 됩니다.
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page import='java.util.* , java.io.*'%> <% request.setCharacterEncoding("euc-kr"); String fileName = request.getParameter("file_Name"); String filePath = request.getParameter("file_Path"); try{ System.out.println("fileName : " + fileName); System.out.println("filePath : " + filePath); if(!fileName.equals("")) { response.setHeader("Content-Type","application/octet-stream"); response.setHeader("Content-disposition","attachment; filename="+fileName); File file = new File (filePath+fileName); System.out.println("fileName : " + fileName); System.out.println("filePath : " + filePath); System.out.println( filePath+ fileName); if(file.exists()) { byte[] bytestream = new byte[(int)file.length()]; int i = 0; int j = 0; BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); BufferedOutputStream fouts = new BufferedOutputStream(response.getOutputStream(),4096); int read = 0; try { while ((read = fin.read(bytestream)) != -1) { fouts.write(bytestream, 0, read); } fouts.close(); fin.close(); } catch (Exception e) { out.println(e.getMessage()); } finally { if(fouts!=null) fouts.close(); if(fin!=null) fin.close(); } }// if end } }catch(Exception e){ out.println(e.getMessage()); out.println("fileName : " + fileName); out.println("filePath : " + filePath); } %>
'Programming > 과거포스팅' 카테고리의 다른 글
C2DM 연동 AUTH값 받아오기 (4) | 2012.04.23 |
---|---|
No subject alternative DNS name matching android.apis.google.com found. (0) | 2012.04.23 |
[안드로이드]Android API URL (0) | 2012.04.04 |
executeUpdate() Stop error (0) | 2012.04.04 |
2012년 4월 3일 - (0) | 2012.04.03 |