2014-09-24 67 views
0

我有我的文件generate_xls.php並正在創建一個文件.xls並希望將其保存在一個文件夾中。現在要做的是下載文件。我有以下幾點:創建xls文件並保存到文件夾

header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment;Filename=ocorrencias.xls"); 

echo "write in file xls"; 

正在創建的文件了,但我要的是一個文件夾中的文件保存在我的服務器,而不是下載。 header有什麼變化嗎?

+1

爲什麼不直接從php寫入並保存文件?即使用'file_put_contents('file.xls',$ data)'。除非要下載文件,否則不需要發送標題。 – 2014-09-24 15:48:37

+0

@ialarmedalien,這會擦除我們已有的內容並將其插入? – 2014-09-24 15:51:48

+0

如果你已經有'file.xls',是的,但是如果你不想覆蓋現有的文件,你會做某種檢查並調用你的文件。 – 2014-09-24 15:54:07

回答

1

HTTP標頭是通過網絡進行通信時發送的HTTP請求和響應的一部分。他們掌握有關客戶端,服務器,發送信息等的信息。

如果腳本創建文件並將其發送給客戶端,腳本應創建相應的標題以通知客戶端文件類型是(Content-type: application/vnd.ms-excel),是直接下載(Content-Disposition: attachment)還是查看它在網頁瀏覽器等等。

如果腳本創建一個文件並將其保存到服務器(例如使用file_put_contents($file_name, $data)),則不需要設置標頭,因爲該文件未通過網絡發送。如果有人隨後想要下載該文件,例如使用FTP客戶端或使用其他腳本,服務器上的腳本或FTP程序將在發生傳輸時設置適當的標頭。

相關問題