所以我用这段代码创建了一个image.php文件并将它放在我的public_html文件夹中:
<?php
header('Content-Type: image/jpeg');
readfile('home/folder/my image.jpg');
?>
然后我把这段代码放在我的public_html文件夹的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);
?>
然后我把这段代码放在我的public_html文件夹的html页面中:
<img src="/image.php">
现在当我用这个img标签加载这个html页面时,我什么都没得到。没有错误,没有图像,只有白色空间。我感谢任何人都能提供的任何见解。
答案 0 :(得分:0)
为什么不使用绝对路径而不是:
header('Content-Type: image/jpeg');
readfile('home/folder/my image.jpg');
喜欢这个:
// notice the absolute path prefix
if(!is_file($image_path = '/home/folder/my image.jpg')){
header('Content-Type: text/plain', 404);
echo 'Image file not found!';
}
// We got a file, keep going...
header('Content-Type: image/jpeg');
header('Content-Length: '.filesize($image_path));
readfile($image_path);
die; // done here
或者使用相对于.php
脚本当前目录的路径__DIR__.'/path/to/image.jpg'
。
答案 1 :(得分:0)
您必须将safe_mode =关闭或配置open_basedir才能访问images目录。