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){}
}
}
'프로그램 언어 > 자바' 카테고리의 다른 글
Reflection을 이용하여 특정 Class의 getter 함수 실행 하기 샘플 (0) | 2015.10.19 |
---|---|
[POI] 셀타입 통화로 만들 때. (0) | 2015.10.12 |
자바 어플리케이션(jar)을 실행파일(exe)로 만들기 :: launch4j (0) | 2013.04.18 |
JVM Options (0) | 2013.04.15 |
숫자를 한글자리수로 표현 (0) | 2013.02.25 |