我想在我的服务器上使用这个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与第二个参数一起使用并将其保存到桌面,那么它似乎很好并且完全可见
答案 0 :(得分:1)
我多次见过这个问题。如果您还没有这样做,请尝试使用文本编辑器打开损坏的图像,看看它是否有问题。尝试在生成的文件和原始文件(来自服务器)之间进行差异。
可能出现的错误:图像中显示的PHP通知或警告,空白字符。例如,打开前的空行可能会破坏您的图像。