현재 클라이언트 용 웹 응용 프로그램을 구축 중입니다. 그리고 나는 원본 IE8로 xlsx 파일을 다운로드 할 수 없다. 반면 그것은 IE9의 IE8 호환 모드로 작동합니다.IE 8에서 XSLX가 제대로 다운로드되지 않습니다.
저는 symfony 1.4, php 5.2.6을 사용하고 있습니다. xslx 파일이 유효합니다.
내 코드 : 그는 웹 사이트를 찾지 못하거나 응답하지 않고, 나중에 다시 시도 할 수 있기 때문에
$this->getResponse()->clearHttpHeaders();
$this->getResponse()->setHttpHeader('Pragma: public');
$this->getResponse()->setContentType('application/force-download');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="Export_Excel.xlsx"');
$this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
$this->getResponse()->setHttpHeader('Connection', 'close');
$this->getResponse()->setContent($fileData);
$this->getResponse()->sendHttpHeaders();
$this->getResponse()->send();
IE 8은, 그것을 다운로드 할 수 없습니다 말한다. 이것은 동일한 ulr을 가진 빈 페이지를 표시 할 수 있기 때문에 URL 문제는 아닙니다. 또한
,이 코드 session_write_close();
$this->getResponse()->clearHttpHeaders();
$this->getResponse()->setHttpHeader('Pragma: public');
$this->getResponse()->setContentType('application/force-download');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="Export_Excel.xlsx"');
$this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
$this->getResponse()->setHttpHeader('Connection', 'close');
@ob_end_clean();
flush();
@readfile(sfConfig::get('sf_web_dir').'/'.$filename.'.xlsx');
throw new sfStopException();
는 그 다음 xslx 파일은 zip 파일로 다운로드됩니다. session_write_close(); 위의 코드는 그걸로 작동하지 않았기 때문에.
아이디어가 있으십니까?
내 파일을 xslx 파일로 다운로드하고 싶습니다. (이름을 변경하지 않아도 됨). 코드의 첫 번째 무리는 크롬, 파이어 폭스, IE 9, IE9 compat IE 8, IE9 compat IE7에서 작동합니다. 그러나 IE8은 아닙니다.
업데이트 2 :
그래서 문제는 다운로드 부분에 정말입니다. 내 상사가 임시로 xlsx를 csv로 바꾸라고 말했고 파일을 다운로드 할 때도 똑같은 문제가 있습니다.
IE8에서 파일 다운로드를 할 수있는 아이디어가 있습니까?
아파치를 사용하고 있습니까? 그렇다면 [이 질문에 체크하십시오] (http://serverfault.com/questions/19060/why-are-docx-xlsx-pptx-downloading-from-webserver-as-zip-files). – j0k
예, 있습니다. 내 상사가 당신의 솔루션을 사용하는 것 같습니다 (휴가를 보내고있는 동안).하지만 작동하지 않았습니다. 그리고 그게 버그인지는 모르겠다. readfile 앞에 버퍼의 모든 헤더와 데이터가 지워집니다. 내 문제는 코드 1 묶음에있다, 그것은 작동하고 파일을 보내야하지만 IE8 그것을 얻지 않는다. – Perello