簡體   English   中英

PHP:Readfile在本地主機上有效,但在服務器上不可用

[英]PHP: Readfile works at localhost but not at server

我試圖解決我幾個小時的問題,並搜索了谷歌和幾個委員會,但是我沒有找到解決方案。

我的問題:我構建了一個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)上嘗試了它,它將工作,並且開始下載文件。 如果我將腳本上載到托管服務器(而不是自己的服務器),則只會得到一個空白頁。

有任何想法嗎? 謝謝!

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

確保您已打開錯誤報告並在開發過程中顯示所有內容:

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

那應該告訴你問題出在哪里。

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

如果失敗,則可能是權限問題。

嘗試添加

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

在進行header()調用之前。 您很可能已將文件上傳到了該腳本期望的位置以外的其他位置,或者該文件無法被網絡服務器讀取。

發現了錯誤。 在網絡服務器上不是mime_content_type函數。感謝您的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM