杭州神话信息技术有限公司

标题: 针对签名档头像偶尔显示不出的不完全解决办法 [打印本页]

作者: hhren1984    时间: 2011-9-19 18:13:39     标题: 针对签名档头像偶尔显示不出的不完全解决办法

本帖最后由 hhren1984 于 2011-9-19 18:15 编辑

问题描述:我的系统是与discuz整合的,这样头像文件并不在本地,而是在论坛的文件夹,这样获取头像的机制是http连接的形式来获取头像并生成图片,代码为:imagecreatefromjpeg($user_src)。这样有一个问题是,当网络出现问题没有获取到图片的时候,那么生成的头像就是一个空白没有任何的东西。如果用imagecreatetruecolor函数进行等比例裁剪,就会生成一个纯黑的图片,很影响签名档的美观与使用。

针对方法:针对因为网络问题获取不到图片的情况,运用循环语句来重复进行获取,这样就基本可以解决这个问题。如下代码所示:
  1.             $user_src_im = NULL;
  2.             $han_count = 1;
  3.             while(!$user_src_im){
  4.                   $filetype = pictype($user_face);
  5.                   if($filetype=="jpeg") $user_src_im = @imagecreatefromjpeg($user_src);
  6.                   else if($filetype=="gif89" || $filetype=="gif87") $user_src_im = @imagecreatefromgif($user_src);
  7.                   else if($filetype=="png") $user_src_im = @imagecreatefrompng($user_src);
  8.                   $han_count++;
  9.                   if($han_count==20) break;
  10.             }
复制代码
这样设置后,就解决了因网络问题而获取不到图片的情况,刷新多次也可以生成头像。

仍存在的问题:经过我反复的刷新尝试,发现有的时候出现假获取的情况。就是系统并没有完全获取到图片,但是imagecreatefromjpeg这个函数返回的却是真值,结果就会出现一个空白的头像。这在我的刷新过程中,大概每十几次会有一次这种情况发生。应该也是和http远程获取的效果等条件有关。目前我还没有想到如果来更好的解决这个办法,望有高手想到办法来解决这一问题。







欢迎光临 杭州神话信息技术有限公司 (http://www.cenwor.com/) Powered by Discuz! X2