2014-03-06 101 views
0

我希望這是一個簡單而快速的修復。我已經看過這裏已經學會如何強制從服務器下載文件。這裏是我用下面的內容:從服務器下載文件PHP - 文件稍微關閉

<?php 
// Sending the file - a pdf in this case 
header('Content-type: application/octet-stream'); 

// Specify what the file will be called 
header('Content-Disposition: attachment; filename="1234.txt"'); 

// And specify where it is coming from 
readfile('C:\test\1234.txt'); 
?> 

它應該是相當自我解釋,但我在救下的文本文件:\測試\ 1234.txt。

我鏈接到我的PHP文件(即具有上面的代碼),這就是所謂的download.php使用該從HTML頁面:

<a href="/download.php" title="Download This PDF">Download This File!</a> 

確定現在的問題..我原來的文本文件是這樣的:

test 

,但是當我下載的文件,結果是一個回車以上:

_ 
test 

這個問題對於文本文件來說並不是很大,但是由於這個問題,所有其他下載的文件都已損壞,我相信這就是原因。我希望有人有一個很簡單的解決方案。

在此先感謝!

+3

'.txt'文件和'.exe'和PDF'title =「下載此PDF」';我對此感到困惑。 –

+1

問題在於,很可能您正在加載一個.exe文件作爲要下載的文件,告訴瀏覽器它是一個文本文件,然後從那裏開始。 PS:剛注意到更新。那麼你還是你沒有這樣做與exe文件,而不是文本? – Zarathuztra

+0

對不起,這是打字時的錯字。我現在更新了它。在這兩種情況下,實際上都是.txt –

回答

3

您可以嘗試刪除PHP結束標記。注意這個引用來自php.net

如果一個文件是純PHP代碼,最好省略文件尾部的PHP關閉 標記。這樣可以防止在PHP結束標記後添加意外的空白或新行,這可能會導致不需要的 影響,因爲如果 腳本中沒有 意圖從程序員發送任何輸出,PHP將開始輸出緩衝。

也許這就是你得到額外回車的地方。

+0

我認爲這是一個有效的場景。 – Zarathuztra

+0

試過了。仍然導致回車:/ –

+0

其實......當我刪除「php」標籤然後重新讀取它時,足夠奇怪了,結果文件很好。不知道爲什麼,但這工作。謝謝您的幫助。 –