달력

10

« 2019/10 »

  •  
  •  
  • 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
  •  
  •  

'한글파일명'에 해당되는 글 1

  1. 2011.07.27 [JSP]한글 된 파일 다운 받기
2011.07.27 14:29

[JSP]한글 된 파일 다운 받기 Language/JAVA2011.07.27 14:29

public void fileDown() throws Exception{

try {
    Properties value = new Properties();

   String srcFile = PageHelper.getString(getString("SRC_FILE"),"");
   String stoFile = PageHelper.getString(getString("STO_FILE"),"");

   File file = new File (uploadDir + stoFile);

   String strClient  = request.getHeader("User-Agent");

   String fileType;

   if(strClient.indexOf("MSIE 5.5") != -1) {
        response.setHeader("Content-Disposition","filename="+srcFile+";");
        fileType   = "doesn/matter";
   } else {
        response.setHeader("Content-Disposition","attachment;filename="+srcFile+";");
        fileType   = "application/octet-stream";
   }

   response.setContentType(fileType);

   byte b[] = new byte[1024];

   BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));

   BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream(),1024);
   int read = 0;
   
   try {
    while ((read = fin.read(b)) != -1){
     outs.write(b,0,read);
    }
    fin.close();
    outs.close();
   } catch (Exception e) {
    System.out.println(e.getMessage());
   } finally {
    if(fin!=null) fin.close();
    if(outs!=null) outs.close();
   }
  } catch (Exception e){
        System.out.println(e.getMessage());
  } finally {

  } 

}
==================================================================================================
위에까지는 파일을 가져오는 소스입니다.
일반적으로 파일 다운은 웹서버에서 다운을 받지만 해당 로직을 타게 되면 WAS에서 파일을 다운을 받게
되니 주의합시다. 반드시!

위 소스는 JSP 에서 JAVA단으로 SRC_FILE,STO_FILE 값을 던져줘야 됩니다.
실제 파일은 한개지만, SRC_FILE, STO_FILE 2개를 사용하는 것은 파일 다운로드 시,
실제 서버의 경로 값을 보여주지 않기 위해서입니다.

uploadDir 는 파일을 다운 받을 위치입니다. context root 로부터 다운로드 위치까지 상대경로를
적어 주시면 됩니다.(여기 소스에는 선언 부분이 없습니다. String으로 선언해서 쓰세요.)

Posted by 현자

댓글을 달아 주세요