본문 바로가기

DEV/JAVA

[JSP]한글 된 파일 다운 받기

반응형

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으로 선언해서 쓰세요.)

반응형
댓글