php 输出图片报错为什么?
发布网友
发布时间:2022-04-24 19:55
我来回答
共4个回答
热心网友
时间:2023-10-09 05:24
echo $rand 是你自己加的吧,php每句话结束要加分号
另外 ,验证码一般要存在session里,以便提交回来的数据验证
把echo $rand那行改成下面这样
session_start();
$_SESSION['verify_code']=$rand;
另外 ,文件结尾可以不要 ?> 以防结尾后面有空格啥的影响图片输出。
这样在你表单提交回来的页面就可以用
if($_POST['verify']!=$_SESSION['verify_code']){
echo '验证码错误';
exit;
}
来做验证
追问
我只想在上传图片上追加文字水印。但是就这样了。直接输出图片没问题。
追答
上传图片加水印方式跟这个不一样,一般是生成两个图片对象,一张原图一张水印图,
再计算水印摆放的位置和缩放,将水印拷贝到原图上,再保存到文件
$waterimg='./static/images/result_image_bg.png';
list($wtwidth, $wtheight, $type, $attr) = getimagesize($waterimg);
$water=imagecreatefrompng($waterimg);
imagesavealpha($water, true);
$uploadimg = '上传的图片路径';
list($upwidth, $upheight, $type, $attr) = getimagesize($uploadimg );
$upload=imagecreatefromjpg($uploadimg );//根据上传的格式确定使用jpg或png
//拷贝水印到上传图片上
imagecopyresized($upload,$water,
$upwidth-$wtwidth-10, //水印放在右下角10像素
$upheight-$wtheight-10,
0,0,
$wtwidth,$wtheight, //这里没缩放,可以根据需求计算一下缩放
$wtwidth,$wtheight);
//保存图片 根据上传的格式确定使用 imagejpeg或imagepng
imagejpeg($upload, $uploadimg);
热心网友
时间:2023-10-09 05:25
for循环的前面要插入一行:
$rand="";
热心网友
时间:2023-10-09 05:25
建议把header('Content-Type: image/jpeg');先注释掉,看一下页面是不是有报错,比如你的php没有装GD库之类的
热心网友
时间:2023-10-09 05:26
11行缺少分号,加上
echo $rand; 就好了