特定的Apache配置设置通过PHP显示图像?

时间:2012-03-22 15:58:01

标签: php image apache config brokenimage

我想在我的服务器上使用这个php脚本显示图像。

$file = fopen('/Volumes/PROMISE/products/jpeg/89239-282.jpg', 'rb');
header('Content-Type: image/jpeg');
fpassthru($file);

但是我得到了一个破损的图像,这个脚本位于我的索引文件的顶部,现在用于测试目的,所以我不认为这是一个标题问题,事实上它是我的索引文件中唯一的东西......

我尝试过使用

echo file_get_contents('/Volumes/PROMISE/products/jpeg/89239-282.jpg');

此外,没有任何运气,该文件存在于指定的路径上,并且具有777权限。

我最后的想法是它可能是apache服务器上的一些配置..?不知道是否有一个可以制动图像的设置?

这是.htaccess文件设置

Options +FollowSymlinks -Multiviews

这是httpd.conf文件中的配置

Options All -MultiViews -ExecCGI -Indexes

我检查了mime.types文件,并且image / jpeg处于活动状态。

所以我想我的问题是:apache设置是否有可能弄乱我的图像。

编辑:

我尝试使用php man的代码

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

在我的本地计算机上它可以工作,但不在我们的服务器上。它给我一个空白页面,没有错误。

如果我将imagejpeg与第二个参数一起使用并将其保存到桌面,那么它似乎很好并且完全可见

1 个答案:

答案 0 :(得分:1)

我多次见过这个问题。如果您还没有这样做,请尝试使用文本编辑器打开损坏的图像,看看它是否有问题。尝试在生成的文件和原始文件(来自服务器)之间进行差异。

可能出现的错误:图像中显示的PHP通知或警告,空白字符。例如,打开前的空行可能会破坏您的图像。