所以我創建了一個image.php文件與此代碼,並把它放在我的public_html文件夾:拉隨機圖像從文件夾上面的文件夾中的public_html
<?php
header('Content-Type: image/jpeg');
readfile('home/folder/my image.jpg');
?>
,然後我把這個代碼在HTML頁面中我的public_html文件夾:
<img src="/image.php">
當我加載頁面時,在瀏覽器中完美顯示了「my image.jpg」文件。所以這告訴我,我可以訪問我的public_html文件夾(這是一個專用服務器)上面的文件夾,它告訴我,我沒有問題在文件名中使用空格來呈現一個jpg文件。
所以現在我試圖從同一個文件夾中隨機抽取圖像,但似乎無法弄清楚。這是我正在做的,不工作。
我創建了這個代碼image.php文件,並把我的public_html文件夾:
<?php
//Define Function to Select Random Image
function random_pic($dir = '/home/folder')
{
$files = glob($dir . '/*.jpg');
$file = array_rand($files);
return $files[$file];
}
//Select Random Image Path
$randPic = random_pic('/home/folder');
//Output Random Image When image.php is called from html image requests
header('Content-Type: image/jpeg');
readfile($randPic);
?>
,然後我把這個代碼在HTML頁面中我的public_html文件夾:
<img src="/image.php">
現在,當我用這個img標籤加載這個html頁面時,我什麼都沒有。沒有錯誤,沒有圖像,只有空白。我很欣賞任何人都可以提供的見解。
調試步驟:檢查'glob()'實際上是否發現了antyhing(例如'var_dump($ files)')。檢查'random_pic()'是否實際返回一個路徑(例如'var_dump($ randPic)'),然後檢查readfile是否返回一個布爾值false(你不能真正var_dump,因爲瀏覽器會嘗試讀取轉儲文本作爲圖像數據)。 –
做一個file_exists($ randPic);並echo $ randPic ...看看它是否有意義。 – Orangepill
除了Marc所說的之外,我還會考慮在標頭中添加一個「no-cache」標誌,這樣它們每次都不會獲得相同的圖像。 或者,也可以不使用'readfile',而使用'302 Temporary Redirect'並直接指向圖像文件。 –