杭州神话信息技术有限公司
标题:
针对签名档头像偶尔显示不出的不完全解决办法
[打印本页]
作者:
hhren1984
时间:
2011-9-19 18:13:39
标题:
针对签名档头像偶尔显示不出的不完全解决办法
本帖最后由 hhren1984 于 2011-9-19 18:15 编辑
问题描述:
我的系统是与discuz整合的,这样头像文件并不在本地,而是在论坛的文件夹,这样获取头像的机制是http连接的形式来获取头像并生成图片,代码为:imagecreatefromjpeg($user_src)。这样有一个问题是,当网络出现问题没有获取到图片的时候,那么生成的头像就是一个空白没有任何的东西。如果用imagecreatetruecolor函数进行等比例裁剪,就会生成一个纯黑的图片,很影响签名档的美观与使用。
针对方法:
针对因为网络问题获取不到图片的情况,运用循环语句来重复进行获取,这样就基本可以解决这个问题。如下代码所示:
$user_src_im = NULL;
$han_count = 1;
while(!$user_src_im){
$filetype = pictype($user_face);
if($filetype=="jpeg") $user_src_im = @imagecreatefromjpeg($user_src);
else if($filetype=="gif89" || $filetype=="gif87") $user_src_im = @imagecreatefromgif($user_src);
else if($filetype=="png") $user_src_im = @imagecreatefrompng($user_src);
$han_count++;
if($han_count==20) break;
}
复制代码
这样设置后,就解决了因网络问题而获取不到图片的情况,刷新多次也可以生成头像。
仍存在的问题:
经过我反复的刷新尝试,发现有的时候出现假获取的情况。就是系统并没有完全获取到图片,但是
imagecreatefromjpeg这个函数返回的却是真值,结果就会出现一个空白的头像。这在我的刷新过程中,大概每十几次会有一次这种情况发生。应该也是和http远程获取的效果等条件有关。目前我还没有想到如果来更好的解决这个办法,望有高手想到办法来解决这一问题。
欢迎光临 杭州神话信息技术有限公司 (http://www.cenwor.com/)
Powered by Discuz! X2