2012-05-28 26 views
2

我試圖下載使用PHP頭實時生成一個Excel文件:下載用頭PHP不要IE8

$filename = "assets.xls"; 
header('Content-Type: application/vnd.ms-excel'); 
header("Content-Disposition: attachment;filename=$filename"); 
header('Cache-Control: max-age=0'); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output'); 

但是,這並不IE8的工作(但在其他PC用IE8的作品??? !!)。 IE8嘗試下載export.php文件而不是assets.xls。任何想法爲什麼IE8做到這一點?

回答

4

嘗試與各地名;filename和報價之間的空間中正確格式化頭as per the HTTP spec

header('Content-Disposition: attachment; filename="' . $filename . '"'); 
+0

+1此外,爲了更好的體驗,請考慮在可用的位置添加「Content-Length」。 –

+0

讓我們試試這個,但不知道問題出在這裏。在一些IE8 macchine正在其他不工作。 – albanx

+0

不確定問題是否存在,但根據規範它顯然是錯誤的,可能會導致問題。 – deceze

1

我有完全相同的問題!剛剛通過刪除'Content-Type'標題來實現它,所以我猜IE8不能很好地與那種類型打... ..?還不確定最好的選擇是什麼,但那絕對是我的球員。

+1

剛剛通過添加一個調用「header_remove();」在開始正常的標題調用之前。 –

1

我有類似的問題。我在Content-Deposition標題前添加了以下標題。

header("Content-type: text/csv"); 
header("X-Download-Options: noopen"); 
header("Content-Disposition: attachment; filename=\"ExcelFileName.csv\""); 

它似乎爲我工作。但是,您必須先保存文件。你無法立即開啓。

0

試試這個:

$filename = 'Excel_Sheet_'.date('Ymd').".xls"; 

header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=$filename"); 
header("Content-Type: application/vnd.ms-excel; "); 
header("Content-Transfer-Encoding: binary"); 
header('Cache-Control: max-age=0'); 
ob_clean(); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output'); 
exit; 
2

我也遇到了同樣的問題。我使用後面的方法來解決這個問題。

header("Cache-Control: private"); 
header("Content-Type: application/vnd.ms-excel"); 
header("Content-disposition: attachment; filename=$filename"); 
0

試圖用一個類似的問題,以爭取了整整一個下午後,我發現,設置

header("Cache-Control: private");

是最好的解決方案。 我已經嘗試確保已設置Content-Length,Content-TypeContent-Disposition且格式正確。 這個問題實際上是新的IE8窗口和標籤似乎不喜歡它首次發生時通過PHP頭髮送的下載。 當初次嘗試後重試文件時,它可以正常工作(在我的情況下)。

如上所述設置Cache-Control之後,我的所有鏈接在IE8中都沒有問題。

+0

沒有人關心IE8(甚至IE9和IE10已被mrcf拒絕) – albanx

+0

@albanx我的客戶仍然在運行Windows XP!不幸的是,大量的企業仍然在他們的辦公室使用XP。 – TomK89

+0

2年前,我在我的上一份工作中遇到了同樣的問題。我們能夠說服客戶切換到新的現代瀏覽器,告訴他們將會有更多的功能和更快的體驗,而且更安全。(即使在XP上,你可以加載鉻和Firefox) – albanx