하은양 믿음군 효실맘 호홍홍집s

파일자체 인코딩을 설정해서 다운로드하기... 본문

가벼운 배움/jsp

파일자체 인코딩을 설정해서 다운로드하기...

호홍홍집 2014. 11. 28. 18:45

여기 저기를 다 뒤져도 안나오더니...ㅋㅋ
이제야 찾아서 쓰네요...
모르면 시간들고 고생하고...ㅠㅠ

txt 파일을 생성하면서 다운로드할려고 보니깐
파일자체 인코딩이 utf-8로 되어 있어서 
파일자체 인코딩을 바꿀려고 찾아 댕겼는데 찾았네요..
알면 금방인데.. 한줄을 몰라서...ㅋㅋ


<%@ page contentType="text/html;charset=euc-kr" pageEncoding="euc-kr" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="net.sf.json.*" %>
<%@ page import="oneH.Models.*" %>
<%
    request.setCharacterEncoding("euc-kr");
    response.setContentType("text/html;charset=euc-kr");

    File objFile = new File(sROOTPATH+"/GamFiles/"+wdS+"_"+wdE+".pat");

    if(objFile.exists()) objFile.delete();

    out.clear();
    
    try{
        if(objFile.createNewFile()){
            // BufferedWriter objBW = new BufferedWriter(new FileWriter(objFile));
            Writer objBW = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(objFile),"euc-kr"));
            // 여기가 파일자체 인코딩을 설정하는 부분...
          
            while (keyProcess <= 1){
                StringBuffer sendData = new StringBuffer();

                // Stringbuffer에 담기 시작
                sendData.append(String.format("%-21s",	REL_LVY_NO		)+"");		
                sendData.append(String.format("%-13s",	PER_PID         )+"");	
                objBW.write(sendData.toString());
            }
            objBW.close();
        }

    }catch (Exception err){

    }
    
    String strFileName = objFile.getName();
    response.reset();
    response.setContentType("application/octer-stream");
    response.setContentType("Content-type: application; charset=euc-kr");
    response.setHeader("Content-Disposition", "attachment;filename=" + strFileName + ";");

    int nRead = 0;
    byte btReadByte[] = new byte[(int)objFile.length()];

    if(objFile.length() > 0 && objFile.isFile())
    {
        BufferedInputStream objBIS = new BufferedInputStream(new FileInputStream(objFile));
        BufferedOutputStream objBOS = new BufferedOutputStream(response.getOutputStream());
    
        while((nRead = objBIS.read(btReadByte)) != -1){
            objBOS.write(btReadByte, 0, nRead);
        }
        objBOS.flush();
        objBOS.close();
        objBIS.close();
    }
%>