你在第2种方式里,除了 img 输出外,还有其它输出。
请参看下面的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
php
// 创建新的图像实例
$im = imagecreatetruecolor(100, 100);
// 设置背景为白色
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);
//在图像上写字
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);
//echo "这一行如果加上就不能正常显示下面的图像了。";
// 输出图像到浏览器
header('Content-Type: image/gif');
imagegif($im);
imagedestroy($im);
?>
为什么第 2 种方式,不能在header前面有内容,究其原因,请参看以下说明:
header()必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行、空格或者是PHP文件里的空行、空格。
简单一句话:在header()被调用之前有输出就会出错。
PHP头加这句了吗?
header("content-type:image/jpeg");
清除程序文件的bom头试试
文件输出页面是否写了html标签的代码?如果有的话,删除掉html代码测试下