2014-02-06 82 views
1
<?php 
    ob_clean(); 
    header('Content-Type: image/jpeg'); 
    header('Content-Length: ' . filesize($file)); 
    $file = '111111-11111.jpg'; 
    $handle = fopen($file, "r"); 
    echo file_get_contents($file); 
?> 

一度,我的PHP網頁停止顯示我已經成功上傳到MySQL數據庫的所有和任何圖像。我想回到這個問題的根源,看看它能否輸出存儲在硬盤上的.jpg圖像,並且我得到的輸出與我試圖從數據庫訪問該圖像時的輸出相同:PHP無法輸出圖像

圖像[...]無法顯示,因爲它包含錯誤。

圖像位置正確,在標題之前沒有空白,輸出緩衝區已被清除。我花了幾天時間在谷歌尋找答案,但沒有運氣。

我對PHP相當陌生,所以如果你能提供幫助,請儘可能描述性,以便我能理解。 預先感謝您。

+1

你檢查了error_log的任何PHP錯誤,也許基於權限?此外,您不需要'$ handle = ...'行,因爲您沒有使用它。 –

+0

檢查頁面的原始輸出。它可能在流中存在一些錯誤。使用'ini_set('display_errors',0);'來禁用它。 –

+0

另外,在使用'file_get_contents()'之前,您不需要'打開()'文件。 – Phylogenesis

回答

1

確保您嘗試輸出的文件位於正確的路徑中(來自代碼,與PHP腳本相同),並且您擁有文件的讀取權限。

$file = '111111-11111.jpg'; 
$type = 'image/jpeg'; 
header('Content-Type:'.$type); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 
+0

要注意:指令的順序是要更改,這看起來更好(文件大小計算是在設置文件的路徑之前完成) – Alfabravo

+0

嘗試了你的建議代碼,它仍然給我同樣的錯誤。該文件真的在那裏,在同一個名稱下,我擁有必要的權限,但它仍然沒有給我任何東西。 – Criss

+0

@Criss哪個錯誤? – Napolux