안녕하세요.
여기는 앱 위주의 싸이트 인가보네요.
제가 질문할 부분은 모바일 웹이긴 한데. 다른 곳에서 자료을 못 찾아 여기에 도움을 청합니다.
제목 처럼 모바일 웹(뭐 웹이죠.. 웹을 사용하는 디바이스가 모바일 폰이라는 점만 다를 뿐)에서 첨부파일 다운로드를 하려고 하는데.
안드로이드 2.2 이상부터는 다운로드가 지원 된다고 들었습니다.
그래서 될 줄 알았는데 111.txt 파일을 다운로드 받아야 되는데 111.htm 파일이 받아지네요.
물론 확장자를 바꾼다고 될 문제는 아닙니다.
혹시 해결방법 아시는 분 댓글 좀 달아주세요.
해결했습니다.
정확히 하면 해답은 찾았는데 원인은 모르겠습니다.
디버깅하다보니 파라메터가 넘어오지 안더라구요.
같은 페이지를 pc 브라우저에서 호출했을때랑 모바일 브라우저(정확히는 안드로이드 - 겔럭시s)에서 호출했을때 결과가 달랐습니다.
그런데 자세히 보니 모바일에서도 파라메터가 넘어오지 않는 것은 아니었습니다.
저희 솔루션에서 파일 다운로드는 서블릿 호출을 하는데 모바일 브라우저에서는 동작을 이상하게 하고 있습니다.
정상적이라면 보통 페이지에서 post 방식으로 submit을 하기 때문에 doPost 호출해야 되는데 모바일 브라우저에서는 처음엔 doPost를 한번 호출 합니다.
이때는 파라메터도 정상적으로 넘어갑니다.
여기서 끝났다면 파일 다운로드가 정상적으로 이뤄집니다.
하지만 연이어서 doGet 함수를 호출하더라구요. 이때는 파라메터가 넘어가지 않습니다.
나중에 호출된 doGet 함수 때문에 오류가 발생하고 결국 다운로드가 정상적으로 이뤄지지 않았던 겁니다.
그래서 처음부터 form에 method 방식을 get으로 했더니 정상적으로 다운로드가 됩니다.
<form ... method="post">...</form> -> <form ... method="get">...</form>이런 식으로요.
그런데 왜 그런지는 모르겠습니다. 혹시 원인을 아시는 분은 댓글이나 메일(hiba1996@naver.com)을 통해 알려주시면 감사하겠습니다.
그리고 브라우저 별로 다르게 동작합니다.
테스트 결과 오페라 미니와 아이폰에선 위처럼 수정하지 않더라도 다운로드가 정상적이었습니다. 물론 아이폰의 경우 text파일이 바로 보이는 형태지만..




링크의 type을 지정해주세요