2012-06-26 35 views
0

我在我的服務器上生成了一個xls文件,我想推送給客戶端進行下載,但似乎無法使其工作。以下是我迄今爲止:如何使用PHP提供現有Excel的下載?

$xlsFile = 'test.xls'; 

header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download");; 
header("Content-Disposition: attachment;filename=$xlsFile"); 
header("Content-Transfer-Encoding: binary "); 
exit(); 

我的Excel文件是正確的,如果我從服務器上打開可以打開,但我怎麼可以把這個文件給客戶端下載?

+0

多種內容類型有什麼意義?這就像說「我是一輛汽車,我是長頸鹿,我是一根口香糖」。除非你正在做多部分MIME,否則一個HTTP請求回覆只能有一個MIME類型。 –

回答

3

你似乎你的「內容類型」標頭矯枉過正。哦,你需要在exit()之前發送文件。所有你需要的是

header("Content-Type: application/vnd.ms-excel"); 
header('Content-Disposition: attachment; filename="' . $xlsFile . '"'); 
readfile($xlsFile); 
exit(); 
+0

就是這樣......謝謝! – user1216398

0

你只需要添加更多的線

$xlsFile = 'test.xls'; 

header("Content-Type: application/vnd.ms-excelapplication/vnd.ms-excel"); 
header("Content-Disposition: attachment;filename='$xlsFile'"); 
header("Content-Transfer-Encoding: binary "); 
echo file_get_contents($xlsFile); 
exit(); 
+0

這些內容類型標頭是錯誤的。你只需要一個 - 這三個都不是正確的MIME類型的Excel。 –

+0

確實,我只是複製了OP的。感謝您指出! – Havelock

0

樣的功能。

function file_download($filename, $mimetype='application/octet-stream') { 
    if (file_exists($filename)) { 
// send headers 
    header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK'); 
// type 
    header('Content-Type: ' . $mimetype); 
// date of modified  
    header('Last-Modified: ' . gmdate('r', filemtime($filename))); 
    header('ETag: ' . sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename))); 
// file size 
    header('Content-Length: ' . (filesize($filename))); 
    header('Connection: close'); 
    header('Content-Disposition: attachment; filename="' . basename($filename) . '";'); 
// send file 
    echo file_get_contents($filename); 
    } else { 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
    header('Status: 404 Not Found'); 
    } 
    exit; 
} 
+1

至少要注意作者的屬性? –

+0

對不起。我來自俄羅斯,硬漢語:( – user532108

+1

Откудаскопироваликод-то?Хотьбысыссылочкунаоригинальныйисточинкдобавилибы。 –

相關問題