HTTP 를 쓰는 것이 처음이라 그런지 모르는 것이 많아서 질문드립니다
request 와 respons 를 이용해서 파일다운로드를 구현하려 하는데
잘 안 되는 부분이 생겨서 염치 불구하고 질문글 올립니다
구현하려고 하는 것은
1. 여러개의 파일을 한꺼번에 다운받아야 하며
2. 파일 다운로드 시에 저장하시겠습니까? 라는 팝업창(?) 이 나오지 않아야 합니다
3. 서버에 저장되어 있는 파일을 사용자PC 에 저장하려고 합니다
그래서 다음과 같이 구현했습니다
for 문이 돌아가고 그 안에서
fileDownload 함수가 호출됩니다
해당 함수에는 다운로드에 필요한 변수값들이 들어가게 되고요
함수는 다음과 같습니다
// create file.
File f = new File(filepath+fileName);
// set for download excel file.
String contentType = request.getContentType();
response.setContentType("x-msdownload");
if (contentType == null) {
if (request.getHeader("user-agent").indexOf("MSIE 5.5") != -1)
response.setContentType("doesn/matter;");
else
response.setContentType("application/octet-stream");
} else {
response.setContentType(contentType);
}
response.setHeader("Content-Transfer-Encoding:", "binary");
response.setContentType("application/vnd.ms-excel;charset=euc-kr");
response.setHeader("Content-Disposition", "filename=" + new String(fileName.getBytes("ksc5601"), "8859_1") + ";");
response.setHeader("Content-Length", "" + f.length());
response.setHeader("Pragma", "no-cache;");
response.setHeader("Expires", "-1;");
byte b[] = new byte[1024];
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(f));
BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
try{
int read = 0;
while ((read = fin.read(b)) != -1)
{
outs.write(b,0,read);
}
}catch (Exception e){
}finally{
if (outs!=null) outs.close();
if (fin!=null) fin.close();
}
해당 구문을 돌리면 일단 에러는 나타나지 않습니다
제가 모르는 에러가 있는지 모르겠지만 예상 가능한 에러는 for 문 밖에서 죄다 catch 로 걸러내고 있습니다
고수 분들의 조언을 좀 듣고 싶습니다