Така че създадох файл image.php с този код и го поставих в моята папка 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">
Сега, когато зареждам тази html страница с този img таг, не получавам нищо. Няма грешка, няма изображение, нищо освен бяло пространство. Оценявам всяка информация, която всеки може да предостави.
glob()
действително намира нещо (напр.var_dump($files)
). Проверете далиrandom_pic()
действително връща път (напр.var_dump($randPic)
), след това проверете дали readfile не връща булево невярно (което всъщност не можете да var_dump, защото браузърът ще се опита да прочете дъмп текста като данни за изображение). - person Marc B   schedule 20.07.2013readfile
, можете да използвате302 Temporary Redirect
и да посочите директно към файла с изображение. - person Mr. Llama   schedule 20.07.2013