public void downloadAttachFile(HttpServletRequest request, HttpServletResponse response) throws Exception {

logger.info(Thread.currentThread().getStackTrace()[1].getMethodName());

InputStream in = null;

ServletOutputStream sos = response.getOutputStream();

// HTTPS 인증서가 없을 경우 처리

// Create a new trust manager that trust all certificates

TrustManager[] trustAllCerts = new TrustManager[]{

   new X509TrustManager() {

       public java.security.cert.X509Certificate[] getAcceptedIssuers() {

           return null;

       }

       public void checkClientTrusted(

           java.security.cert.X509Certificate[] certs, String authType) {

       }

       public void checkServerTrusted(

           java.security.cert.X509Certificate[] certs, String authType) {

       }

   }

};


try{

   SSLContext sc = SSLContext.getInstance("SSL");

   sc.init(null, trustAllCerts, new java.security.SecureRandom());

   HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

String fileName = request.getParameter("fileName");

response.setContentType("application/octet-stream");

response.setHeader("Content-Disposition", "attachment;filename=" + fileName.substring(12,  fileName.length()));

URL url = new URL(DOWNLOAD_CORP_URL + request.getParameter("fileName"));

URLConnection connection = url.openConnection();

in = new BufferedInputStream(connection.getInputStream());


byte[] buf = new byte[1024];

   int n = 0;

   while ((n = in.read(buf)) != -1) {

      sos.write(buf, 0, n);

   }

   sos.flush();

}catch(Exception e){

e.printStackTrace();

}finally {

if(in !=null)try{in.close();}catch(Exception e){}

if(sos !=null)try{sos.close();}catch(Exception e){}

}

}

+ Recent posts