我有一个接收id并发回图片的协议。现在我有问题如何发送只是创建.gif?请在这里查看我的代码
if($id!="")
{
........
$ext = substr( $picturename, strrpos($picturename, '.')+1 );
switch($ext)
{
case 'jpg':
$ext = 'jpeg';
break;
case 'jpeg':
$ext = 'jpeg';
break;
case 'png':
$ext = 'png';
break;
case 'gif':
$ext = 'gif';
break;
}
header('Content-Description: File Transfer');
header('Content-Type: image/'.$ext);
$file = "./images/".$picturename;
readfile($file);
//this work
}
else
{
// Create a 1x1 image
$im = imagecreatetruecolor(55, 30);
$trans = imagecolorallocate($im, 0, 0, 0);
// Make the background transparent
imagecolortransparent($im, $trans);
header('HTTP/1.1 403 Forbidden');
//How can I send .gif back with header ??
}
答案 0 :(得分:1)
您可以设置多个标题并以相同方式输出图像。附件是生成1x1像素的代码。
....
header('HTTP/1.1 403 Forbidden');
header('Content-Type: image/gif');
// output a 1x1 pixel
echo base64_decode("R0lGODdhAQABAIAAAPxqbAAAACwAAAAAAQABAAACAkQBADs=");
答案 1 :(得分:0)
输出imagegif($im);
。设置403
标题没有任何特殊之处,因此您可以输出图像,这就是将要接收的内容。
答案 2 :(得分:0)
如果您不需要在图像中动态包含任何内容(例如文本),您可以使用默认的1x1图像而不是使用imagecreate函数...?
至于403标题,我不确定浏览器是否会显示图像,如果它认为这是来自服务器的错误响应 - 那么你可能会得到破碎的图像。