2011-02-16 89 views
0

我試圖解決我的問題幾個小時,並搜索谷歌和幾個主板,但我還沒有找到解決方案。PHP:Readfile在localhost中工作,但不在服務器上

我的問題:我建立了一個PHP腳本生成一個下載。下面 代碼:

$file = "file.pdf"; 
$download_folder = "../contents/"; //RELATIV 
$type= mime_content_type($download_folder.$file); 
    header("Content-Type: $type"); 
    header("Content-Disposition: attachment; filename=\"$file\""); 

    readfile($download_folder.$file); 

如果我嘗試在我的本地服務器(XAMPP)它的工作原理和文件的下載開始。如果我將腳本上傳到我的託管服務器(不是自己的,它已經沒有了),我只會得到一個空白頁面。

任何想法?謝謝!

回答

0

檢查權限。 如果您有文件的讀取權限。 您可以使用chmod命令設置權限。

0

確保你有錯誤報告開啓和發展過程中顯示的所有內容:

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

這應該告訴你問題是什麼。

我的猜測是它的路徑有問題。 嘗試使用絕對路徑,如/var/www/vhosts/yoursite.com/httpdocs/contents/file.pdf

如果失敗,那麼它可能是一個權限問題。

+0

好主意!服務器上不存在MIME類型函數。現在它可以工作 – ikonos 2011-02-16 19:06:56

0

嘗試做header()調用之前添加

if (!file_exists($download_folder . $file)) { 
    die("can't find the file") 
} 
if (!is_readable($download_folder . $file)) { 
    die("can't read the file") 
} 

。很有可能你已經上傳了文件,而不是這個腳本所期望的位置,或者Web服務器不可讀。

0

發現錯誤。在網絡服務器不是功能mime_content_type。感謝您的幫助

相關問題