昨天项目里面,远程下载图片,并且生成图片,但是图片生成了,电脑的图片软件也能打开,但是去合成二维码的时候,一直报错,说文件不是正确的png格式,通过ps软件打开,显示文件损坏,最后发现
错误代码如下:
$filename = "temp.png"; $img_url = "http://img01.yingxiong.com/M00/01/B0/CsggAlimbkeECUQuAAAAAHwKdM4125.JPG"; file_put_contents($filename,file_get_contents($img_url)); 电脑其他图片软件容错比较好,图片能打开,但是文件已经损坏,php图片处理函数去处理会报错 代码更改后代码如下 $filename = "temp.png"; $img_url = "http://img01.yingxiong.com/M00/01/B0/CsggAlimbkeECUQuAAAAAHwKdM4125.JPG"; MakeImg($filename,$img_url); /** * @param $filename 要生成的图片名称 * @param $img_url 下载图的地址 * @param $img_type 想要的图片类型 */ function MakeImg($filename,$img_url,$img_type="png") { $f_extension = strtolower(pathinfo($img_url,PATHINFO_EXTENSION));//文件的后缀名,获取url ($f_extension=="jpg")&&$f_extension = "jpeg"; $res = call_user_func('p_w_picpathcreatefrom'.$f_extension,"./1.jpg"); return call_user_func('p_w_picpath'.$img_type,$res,$filename); }