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으로 선언해서 쓰세요.)
'DEV > JAVA' 카테고리의 다른 글
에러 처리 - UnsupportedEncodingException (0) | 2012.01.27 |
---|---|
Calender 타입을 문자열로 변경 (0) | 2011.12.22 |
주말 날짜 구하기 (0) | 2011.07.14 |
이클립스 에러 : Save Fail : Negative Time (0) | 2011.07.12 |
[유용한 String 관련 java code] String 암호화(Encrypt), 복호화(Decrypt) 기능 java code (0) | 2011.07.05 |