2011-03-30 78 views
-1

我想在我的網頁下載鏈接, 用戶上傳文本文件到服務器,我想下載的文件, plz幫助我,我新來的PHP,如何在PHP下載腳本

+1

你的問題非常模糊,並且沒有任何細節。最好的堆棧溢出問題描述了一個用例(就像你做的那樣,但是用更多的細節和更少的懶惰捷徑),接下來是你目前的方法,接着是你的方法目前沒有產生所需行爲的方式。有時候關於這個問題的理論也會隨之而來。像「我該怎麼做」這樣的問題並沒有說明你已經做了一些研究或者自己走了,通常不會吸引有效的答案(這不是一個留言板)。祝你好運。 – 2011-03-30 09:09:57

回答

3

您需要獲取mime類型和文件大小,然後在發送文件之前設置正確的標題。試試這個:

function sendFile($file) { 
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    header('Content-type: ' . finfo_file($finfo, $file)); 
    header('Content-length: ' . filesize($file)); 
    $filename = basename($file); 
    header("Content-Disposition: attachment; filename='$filename'"); 
    fpassthru($file); 
    finfo_close($finfo); 
} 
+0

致命錯誤:調用未定義函數finfo_open()在... – Wh1T3h4Ck5 2011-03-30 10:11:49

+0

[finfo](http://www.php.net/manual/en/ref.fileinfo.php)是PHP 5.3+,很抱歉。如果您使用的是另一版本的PHP – chriso 2011-03-30 10:34:25

+0

+1,則使用'mime_content_type($ file)',這樣做更好。順便說一句,我使用5.2.9。 – Wh1T3h4Ck5 2011-03-30 10:37:04