ssl을 이용하여 https url로 구성된 웹사이트에서
파일 다운로드시 IE에서만 "다운로드할 수 없습니다" 라는 오류메시지가 나는 것을 발견했다.
IE9부터는 정상적으로 다운로드가 가능하게 지원을 해주는것 같지만
IE8 이하 버전 부터는 다운로드가 되지 않는다.
문제의 원인은 IE가 ssl을 통해 보안 웹 사이트와 통신 할때 캐시요청을 하게 되는데
파일 다운로드 헤더에 no-cache가 있으면 IE가 파일을 캐시 하지 않게 되어
파일다운로드를 하지 못한단다..
그리고 추가로 검색을 해보니,
Microsoft 고객센터에 이미 언급된 문제점이라는구나..
- HTTPS URL을 사용하여 Office 문서나 PDF 파일을 열 때 "다운로드할 수 없습니다." 오류 메시지가 나타난다
- SSL을 통한 Internet Explorer 파일 다운로드가 "No-Cache" 헤더에서 작동하지 않는다
원인
* Internet Explorer 6.0 SP1에서 암호화된 페이지를 디스크에 저장 안 함 확인란이 선택되어 있습니다.
* 서버가 "Cache-Control: No Store" 헤더를 보냅니다.
* 서버가 "Cache-Control: No Cache" 헤더를 보냅니다.
위 문제를 해결하기 위해서는
서버가 Cache-Control 헤더로 No Store나 No Cache를 보내지 않도록 바꾸어주어야 한다.
Apache 서버의 http.conf 파일또는 .htaccess 파일을 수정하여
다음과 같은 헤더명령을 추가 하거나,
==================================
<Files filename.php>
Header unset Pragma
Header unset Cache-Control
</Files>
==================================
PHP의 경우
다음과 같은 헤더를 다운로드 전에 보내주면 된다.
==================================
Header("Pragma: dummy=bogus");
Header("Cache-Control: private");
==================================
그리고 추가로!
파일 다운로드 헤더 파일에 no-cache 를 삭제해줘야 한다!
====================================================================
<download.php>
Header("Content-Disposition: attachment; filename=$name");
Header("Content-Type: text/html; charset=utf-8");
Header("Content-Length: ".filesize("$fname"));
Header("Pragma:no-cache"); // 이놈을 삭제 해줘야 한다.
Header("Expires: 0");
====================================================================
출처: http://www.whitesal.com/article/article_view.php?mode=3&no=1709
'WEB언어 > PHP' 카테고리의 다른 글
php 문자열 자르기 substr() 함수 explode() (0) | 2014.10.26 |
---|---|
php money_format 변환 - 미국 형식 화폐 / MySQL 일자포멧 / 요일확인 (0) | 2014.10.23 |
php + mysql 웹 페이지 한글 깨짐 현상 처리 (0) | 2014.10.22 |
[PHP] DB값 날짜 변경하기 / 나이 계산 (0) | 2014.05.25 |
[php] regular expression - filter number only (0) | 2014.05.25 |
[PHP] 구분자로 split하기 (explode함수) (0) | 2012.09.06 |
Fatal error: Cannot redeclare 메서드명() (previously declare의 해결방법 (0) | 2012.04.06 |
[펌] PHP - tcp소켓 통신을 이용한 HTTP Request (0) | 2008.11.04 |
(로그인하지 않으셔도 가능)