如何实现ecshop中把相册里每一张图片自动缩略成 商品图片大小

(一)现在的ecshop 在添加新商品的时候 把上传的商品图片 剪裁成 小图片 (在前台单个商品页面的 商品图片下面的 相册图片列表图 
片 , $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height'] 这个是大小) 跟 商品图片(就是单个商品页面的 商品图片 , $GLOBALS['_CFG']['image_width'], $GLOBALS['_CFG'] 
['image_height'] 这个是大小)
然而 ecshop 现在 只是 处理 添加商品是 上传的那张 图片 (但是 相册里面的 图片 只是处理成 小图片 )
我想做一个 在相册里上传图片的时候 并处理 缩小成 小图片的时候 顺便 生成一个 商品图片 并存放在 goods_img   文件夹下
以下 是 在上传 相册图片的时候   并生成 缩略图
这个方法 是 ...\upload\admin\includes\lib_goods.php 里的方法
**
* 保存某商品的相册图片
* @param   int     $goods_id
* @param   array   $image_files
* @param   array   $image_descs
* @return void
*/
function handle_gallery_image($goods_id, $image_files, $image_descs)
{
    /* 是否处理缩略图 */
    $proc_thumb = (isset($GLOBALS['shop_id']) && $GLOBALS['shop_id'] > 0)? false : true;
    foreach ($image_descs AS $key => $img_desc)
    {
        /* 是否成功上传 */
        $flag = false;
        if (isset($image_files['error']))
        {
            if ($image_files['error'][$key] == 0)
            {
                $flag = true;
            }
        }
        else
        {
            if ($image_files['tmp_name'][$key] != 'none')
            {
                $flag = true;
            }
        }
        if ($flag)
        {
            // 生成缩略图
            if ($proc_thumb)
            {
                $thumb_url = $GLOBALS['image']->make_thumb($image_files['tmp_name'][$key], $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height']);
                $thumb_url = is_string($thumb_url) ? $thumb_url : '';
            }
            $upload = array(
                'name' => $image_files['name'][$key],
                'type' => $image_files['type'][$key],
                'tmp_name' => $image_files['tmp_name'][$key],
                'size' => $image_files['size'][$key],
            );
            if (isset($image_files['error']))
            {
                $upload['error'] = $image_files['error'][$key];
            }
            $img_original = $GLOBALS['image']->upload_image($upload);
                       
            if ($img_original === false)
            {
                sys_msg($GLOBALS['image']->error_msg(), 1, array(), false);
            }
            $img_url = $img_original;
            if (!$proc_thumb)
            {
                $thumb_url = $img_original;
            }
            // 如果服务器支持GD 则添加水印
            if ($proc_thumb && gd_version() > 0)
            {
                $pos        = strpos(basename($img_original), '.');
                $newname    = dirname($img_original) . '/' . $GLOBALS['image']->random_filename() . substr(basename($img_original), $pos);
                copy('../' . $img_original, '../' . $newname);
                $img_url    = $newname;
                $GLOBALS['image']->add_watermark('../'.$img_url,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']);
            }
            //********************************************************
            //                      生成商品图片的缩略图 开始
            //********************************************************
            if ($GLOBALS['_CFG']['image_width'] != 0 || $GLOBALS['_CFG']['image_height'] != 0)
            {
              $goods_thumb_url = $GLOBALS['image']->make_thumb($image_files['tmp_name'][$key], $GLOBALS['_CFG']['image_width'], $GLOBALS['_CFG']['image_height']);
                 $goods_thumb_url = is_string($goods_thumb_url) ? $goods_thumb_url : '';
             $upload = array(
                 'name' => $image_files['name'][$key],
                 'type' => $image_files['type'][$key],
                 'tmp_name' => $image_files['tmp_name'][$key],
                 'size' => $image_files['size'][$key],
             );

             if (isset($image_files['error']))
             {
                 $upload['error'] = $image_files['error'][$key];
             }
             $goods_img_original = $GLOBALS['image']->upload_image($upload);
             }
            
            if ($goods_img_original === false)
            {
                sys_msg($GLOBALS['image']->error_msg(), 1, array(), false);
            }
            $goods_img_url = $goods_img_original;
            if (!$proc_thumb)
            {
                $goods_thumb_url = $goods_img_original;
            }
            // 如果服务器支持GD 则添加水印
            if ($proc_thumb && gd_version() > 0)
            {
                $pos        = strpos(basename($goods_img_original), '.');
                $newname    = dirname($goods_img_original) . '/' . $GLOBALS['image']->random_filename() . substr(basename($goods_img_original), $pos);
                copy('../' . $goods_img_original, '../' . $newname);
                $goods_img_url    = $newname;
                $GLOBALS['image']->add_watermark('../'.$goods_img_url,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']);
            }
            
            //********************************************************
            //                     生成商品图片的缩略图    结束
            //********************************************************
            /* 重新格式化图片名称 */
            $img_original = reformat_image_name('gallery', $goods_id, $img_original, 'source');
             //********************************************************
            $goods_thumb_url = reformat_image_name('gallery_thumb', $goods_id, $goods_thumb_url, 'goods');
             //********************************************************
            
            $img_url = reformat_image_name('gallery', $goods_id, $img_url, 'goods');
            $thumb_url = reformat_image_name('gallery_thumb', $goods_id, $thumb_url, 'thumb');
            $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods_gallery') . " (goods_id, img_url, img_desc, thumb_url, img_original,goods_img) " .
                    "VALUES ('$goods_id', '$img_url', '$img_desc', '$thumb_url', '$img_original','$goods_thumb_url')";
            $GLOBALS['db']->query($sql);
            /* 不保留商品原图的时候删除原图 */
            if ($proc_thumb && !$GLOBALS['_CFG']['retain_original_img'] && !empty($img_original))
            {
                $GLOBALS['db']->query("UPDATE " . $GLOBALS['ecs']->table('goods_gallery') . " SET img_original='' WHERE `goods_id`='{$goods_id}'");
                @unlink('../' . $img_original);
            }
        }
    }
   
}
goods_img 这个字段是我在 数据表 ecs_goods_gallery 表中添加的字段 用来存放 相册图片的商品缩略图的路径
* 保存某商品的相册图片
* @param   int     $goods_id
* @param   array   $image_files
* @param   array   $image_descs
* @return void
*/
function handle_gallery_image($goods_id, $image_files, $image_descs)
{
    /* 是否处理缩略图 */
    $proc_thumb = (isset($GLOBALS['shop_id']) && $GLOBALS['shop_id'] > 0)? false : true;
    foreach ($image_descs AS $key => $img_desc)
    {
        /* 是否成功上传 */
        $flag = false;
        if (isset($image_files['error']))
        {
            if ($image_files['error'][$key] == 0)
            {
                $flag = true;
            }
        }
        else
        {
            if ($image_files['tmp_name'][$key] != 'none')
            {
                $flag = true;
            }
        }
        if ($flag)
        {
            // 生成缩略图
            if ($proc_thumb)
            {
                               $thumb_url = $GLOBALS['image']->make_thumb($image_files['tmp_name'][$key], $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height']);
                $thumb_url = is_string($thumb_url) ? $thumb_url : '';
            }
            $upload = array(
                'name' => $image_files['name'][$key],
                'type' => $image_files['type'][$key],
                'tmp_name' => $image_files['tmp_name'][$key],
                'size' => $image_files['size'][$key],
            );
            if (isset($image_files['error']))
            {
                $upload['error'] = $image_files['error'][$key];
            }
            $img_original = $GLOBALS['image']->upload_image($upload);
      
            if ($img_original === false)
            {
                sys_msg($GLOBALS['image']->error_msg(), 1, array(), false);
            }
            $img_url = $img_original;
            if (!$proc_thumb)
            {
                $thumb_url = $img_original;
            }
                         // 如果服务器支持GD 则添加水印
            if ($proc_thumb && gd_version() > 0)
            {
                $pos        = strpos(basename($img_original), '.');
                $newname    = dirname($img_original) . '/' . $GLOBALS['image']->random_filename() . substr(basename($img_original), $pos);
                copy('../' . $img_original, '../' . $newname);
                $img_url    = $newname;
echo "<script language=\"JavaScript\">alert(\"img_url    ---".$img_url ."\");</script>";
                $GLOBALS['image']->add_watermark('../'.$img_url,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']);
            }
            //********************************************************
            //                      生成商品图片的缩略图 开始
            //********************************************************
            
            if ($GLOBALS['_CFG']['image_width'] != 0 || $GLOBALS['_CFG']['image_height'] != 0)
            {
            
              $goods_thumb_url = $GLOBALS['image']->make_thumb('../'. $img_url , $GLOBALS['_CFG']['image_width'], $GLOBALS['_CFG']['image_height']);
                if ($goods_thumb_url === false)
                {
                    sys_msg($image->error_msg(), 1, array(), false);
                }
              
                           // 加水印
             if (intval($GLOBALS['_CFG']['watermark_place']) > 0 && !empty($GLOBALS['_CFG']['watermark']))
             {
                 if ($image->add_watermark('../'.$goods_thumb_url,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)
                 {
                     sys_msg($image->error_msg(), 1, array(), false);
                 }
             }
            }
            //********************************************************
            //                     生成商品图片的缩略图    结束
            //********************************************************
            /* 重新格式化图片名称 */
            $img_original = reformat_image_name('gallery', $goods_id, $img_original, 'source');
             //********************************************************
            $goods_thumb_url = reformat_image_name('gallery_thumb', $goods_id, $goods_thumb_url, 'goods');
             //********************************************************
            
            $img_url = reformat_image_name('gallery', $goods_id, $img_url, 'goods');
            $thumb_url = reformat_image_name('gallery_thumb', $goods_id, $thumb_url, 'thumb');
            $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods_gallery') . " (goods_id, img_url, img_desc, thumb_url, img_original,goods_img) " .
                    "VALUES ('$goods_id', '$img_url', '$img_desc', '$thumb_url', '$img_original','$goods_thumb_url')";
            $GLOBALS['db']->query($sql);
            /* 不保留商品原图的时候删除原图 */
            if ($proc_thumb && !$GLOBALS['_CFG']['retain_original_img'] && !empty($img_original))
            {
                $GLOBALS['db']->query("UPDATE " . $GLOBALS['ecs']->table('goods_gallery') . " SET img_original='' WHERE `goods_id`='{$goods_id}'");
                @unlink('../' . $img_original);
            }
        }
    }
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值