sitelink1  
sitelink2  
sitelink3 http://1 
sitelink4 http://ko 
sitelink5 http://www.javaservice.net/~java/bbs/rea...#992449785 
sitelink6 http://sitelink1 
많은 분들이 download.jsp등이나 서블릿을 이용해서 download를 구현을 합니다.

그 이유는 download를 통해서 down을 받게함으로서 직접적인 파일의 경로를

감추어 서버의 파일구조를 감추려는 보안적인 이유도 있을 것이고

또 download.jsp안에서 session에 값을 체크하여 인증절차를 거쳐야

자료를 받을 수 있게 하기 위한 것일 수도 있고

request.getHeader("referer")를 가지고 이전 페이지 url을알아내거나

HTTP Headers Information중 Host를 체크하여 무단적인 링크를 방지하기

위한 이유등 많은 이유로 처리를 하고 있을 것입니다.

저는 download를 구현함에 있어 같은 질문이 자주 올라오는 것 같아서

그런 내용들에 대해서 간단한 답변들을 적어보도록 하겠습니다.

1. 다운로드시 익스플로러 5.5 버전에서만 제대로 안되요.

이것 버전에 따라서 Header를 다르게 설정해줘야 합니다.

중략... if( strClient.indexOf("MSIE 5.5") != -1 ) { response.setHeader("Content-Type", "doesn/matter;"); response.setHeader("Content-Disposition", "filename=" + strFileName + ";"); } else { response.setHeader("Content-Type", "application/octet-stream;"); response.setHeader("Content-Disposition", "attachment;filename="+strFileName + ";"); }; response.setHeader("Content-Transfer-Encoding", "binary;"); response.setHeader("Content-Length", ""+file.length()); response.setHeader("Pragma", "no-cache;"); response.setHeader("Expires", "-1;"); 중략..
위의 소스와 같이 HTTP Response Headers의 User-Agent를 체크해서 버전이 5.5일경우와 그외 버전일 경우 header를 다르게 설정해줘야 합니다. 2. 파일 다운로드우 이상한 문자가 앞에 추가가 됩니다.(서버에 파일은 문제없음) 이것은 jsp일때 앞부분에 page지시자를 기술할때 다른 내용이 들어가서 그문자가 파일에 추가되어 나타나는 현상입니다. 해결방법은
<%@ page language="java" import="java.util.*,java.io.*,java.sql.*,java.text.*"%> <% String file_path = "D:/resin/webapps"+request.getParameter("file_path"); 중략..
과 같이 Enter를 입력해서 벌어진 부분을
<%@ page language="java" import="java.util.*"%><% String file_path = "D:/resin/webapps"+request.getParameter("file_path"); 중략..
과 같이 붙여서 만들어주면 해결할 수 있습니다. 3. 엑셀, 워드, 파워포인트 등의 파일등이 저장되 되지 않고 바로 익스플로어에서열려요. 이문제는 아직 해결을 못했는데 불가능 할꺼 같습니다. 그 추정근거를 써보면. HTTP Request Headers 중에서 Accept부분을 확인해보면 Office가 깔린 컴은
image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-comet, */*"
라구 나오구 안깔린 컴은
image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
라구 나옵니다. 아마도 Accept라는 건 자동으로 브라우저에서 인식가능한 것을 나타내는거 같은데요. Office를 깔면 자동으로 그 내용이 추가됩니다. 그러니까 특별히 파일확장명을 변경한 다든지 등의 방법이 아니면 안되는거 같습니다. 어떠한 편법이 있을지도 모르겠지만 아직 확인된 바가 없습니다. 어떤분은 아파치 서버에서 설정할 수 있다고 하시던데 제가 저희 네트워크 관리하는 분께 "아파치에서 설정할 수 있을까요?" 라고 물었더니 우리 네트워크 관리하시는 분 왈(曰) "그건 클라이언트에서 설정된거라서 서버에선 어떻게 할수가 없어 파일명을 바꿔주던지 아님 오피스를 지우라고 해" 라고 하시더군요. ^^ 어쨋든 해결책을 알게 되면 알려드리도록 하죠. ======================================= Home : 디지탈 박스 dizbox 아직은 미완성인... E-mail : kalot@hitel.net ICQ # : 43447821 =======================================