![](https://tistory1.daumcdn.net/tistory/820468/skin/images/banner.png)
티스토리 뷰
직접 URL 방식일때는 아무 문제가 없었는데 (ex <a href="www.xxx.com/test.apk">다운로드</a>)
파일 객체를 만든 후 out.write로 보내는 방식으로 했더니
무슨 짓을 해도 다운로드가 되질 않았다
그런데 아이폰에서는 다운로드가 되는 것이다.... OTL
서버에서는 친절하게도 "Software caused connection abort: socket write error" 이런 메세지까지 띄워줬다
요청이 끝나기 전에 페이지를 이동해버려서 그렇다는 내용을 어딘가에서 봐서
혹시나 싶어서 form 전송으로 다운로드를 요청하던 방식을 href 로 바꿔주었더니 다운로드가 잘된다...
도대체 왜 이런것인지는 모르겠지만.. 어쨌든 잘 되니 다행이다..
ㅇ 기존 방식
frm.action = "/mobile/download.do";
frm.target = "iframe_download"; // iframe
frm.submit();
ㅇ 변경 방식
location.href = "/mobile/getObject.do?req_nm=xxxx&req_seq=oooo";
그런데!!! 갤럭시S 에서는 다운로드가 안된다.. OTL
파일 객체를 쏴줄때 mime type도 바꿔보고 별짓 다 해봤는데도 안된다 (/--)/ ㅛㅛ 일단 보류..
=====================================================================
파일 다운로드를 담당해주는 클래스에서 Content Type을 "application/octet-stream" 로 지정해주고 있는데
이걸 지정하지 않으니까 다운로드가 된다
여기서 type을 지정하지 않으면 톰캣 web.xml에서 정의해놓은 type을 따라가는 것 같은데
이상한 점은 분명 web.xml에 타입들이 정의되어 있는데도 모든 파일이 확장자가 html로 다운로드 되고 있다.. =_=;;
========================================================================================================
갤럭시S 에서도 드디어 해결되었다 -_-v
열심히 외국사이트를 구글링 해보니.. 확장자를 대문자로 하면 된다는 사실을 알게 되었다
이유는 모르겠지만.. 어쨌든.. 대충 이런식으로..
String ext = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase(); // 확장자를 대문자로
fileName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + ext;
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP]엑셀 excel 다운로드 파일 만들기 (한글깨짐, 숫자 포함) (3) | 2012.01.31 |
---|---|
로컬 컴퓨터에서 일반 사이트 주소 입력으로 프로젝트 접속하기 (0) | 2012.01.04 |
IE(익스플로러) 6 또는 7 버전에서 한글이 깨지는 문제 (2) | 2012.01.04 |
파일 다운로드 도우미 (0) | 2012.01.04 |
[JSP] MVC 게시판 만들기 3(수정, 삭제) (2) | 2011.10.15 |
![](https://tistory1.daumcdn.net/tistory/820468/skin/images/banner.png)