본문 바로가기
코딩

파일 다운로드 코드

by euntori 2016. 1. 12.
반응형

PDF파일을 a태그로 href 경로에 링크시켰더니,

웹브라우저에서 자동으로 뷰가 되고, 아이패드에서는 링크를 찾을 수 없다는 오류가 났다.

자동으로 파일이 다운로드 되는 줄 알았는데, 확장자에 따라 브라우저가 처리하는 방법이 다른가보다.

 

그래서 찾아보니 <a href="파일.pdf" download="1">다운로드<a/> 하면 크롬에서 파일이 다운로드 됨.

하지만 파이어폭스는 안됨 ㅜㅜ

 

그래서 찾은 방법은

 

 

 

 

<a href="http://도메인/download/file.pdf">다운로드</a>


로 파일 다운시 "파일 다운로드"창이 뜨지 않음. 

바로 pdf reader가 실행되어 pdf가 보여짐.



a 태그를 이용하여 pdf 파일 다운 시 "파일 다운로드창" 뜨도록 하려면 아래와 같이 작성


<a href="download.jsp?filename=파일명&filename_h=한글명">다운로드</a>


download.jsp 파일


  1. <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
  2. <%@ page import="java.io.*"%>
  3.  
  4. <%
  5.     String filename = request.getParameter("filename") + ".pdf";
  6.     String filename_h = request.getParameter("filename_h") + ".pdf";
  7.     String file_location = "/app/tmax/jeus/webhome/context_name/download";
  8.  
  9.     File file = null;
  10.     BufferedInputStream fin = null;
  11.     BufferedOutputStream outs = null;
  12.  
  13.     try{
  14.        
  15.         file = new File(file_location, filename);
  16.         response.reset();
  17.  
  18.         response.setHeader("Content-Type","application/pdf");
  19.         response.setHeader("Content-Disposition","attachment;filename="+filename_h+";");
  20.  
  21.         if(file != null){
  22.             fin = new BufferedInputStream(new FileInputStream(file));
  23.             outs = new BufferedOutputStream(response.getOutputStream());
  24.  
  25.             int read = 0;
  26.  
  27.             while((read = fin.read()) != -1 ){
  28.                 outs.write(read);
  29.             }
  30.         }
  31.  
  32.     }catch(Exception e){
  33.         response.setContentType("text/html;charset=euc-kr");
  34.         out.println("<script type='text/javascript'>");
  35.         out.println("alert('파일 오픈 중 오류가 발생하였습니다.');");
  36.         out.println("</script>");
  37.     }finally{
  38.  
  39.         if(outs != null) fin.close();
  40.         if(fin != null) outs.close();
  41.  
  42.     }
  43.    
  44. %>
반응형

'코딩' 카테고리의 다른 글

쿼크모드 (호환성보기) 발생 원인  (0) 2016.04.08
페이스북 타임라인 css  (0) 2016.02.26
아이폰 iframe 이슈  (0) 2015.12.28
그라데이션 배경 css로 만들어주는 사이트  (3) 2015.12.09
부트스트랩 datepicker  (0) 2015.10.27

Designed by 티스토리