技术分享

ecshop上传图片功能二次开发

作者:   来源:金睿网络   时间:2017-08-25

代码中红色部分为添加和修改的内容!!

首先在在ecs_goods_attr数据表中添加 字段 attr_img (数据类型为varchar)

一、打开文件:admin/include/lib_goods.php

 

function build_attr_html($cat_id, $goods_id = 0)

{

    $attr = get_attr_list($cat_id, $goods_id);

    $html = '';

    $spec = 0;

    foreach ($attr AS $key => $val)

    {

        $html .= "

";

        if ($val['attr_type'] == 1 || $val['attr_type'] == 2)

        {

            $html .= ($spec != $val['attr_id']) ?

                "[+]" :

                "[-]";

            $spec = $val['attr_id'];

        }

        $html .= "$val[attr_name]

';

    }

    $html .= '';

    return $html;

}

二、admin/goods.php

 // 循环现有的,根据原有的做相应处理

 

      if(isset($_POST['attr_id_list']))

      {

          foreach ($_POST['attr_id_list'] AS $key => $attr_id)

          {

           //上传文件类型列表

            $uptypes=array(

              'image/jpg',

              'image/jpeg',

              'image/png',

              'image/pjpeg',

              'image/gif',

              'image/bmp',

              'image/x-png'

            );

            $datetime=date("Ym",time());

            $max_file_size=5000000;    //上传文件大小限制, 单位BYTE

            $destination_folder="../images/img/".$datetime."/"; //上传文件路径

            $destination_folder1="images/img/".$datetime."/"; //写入数据库文件路径

        if(!$_FILES['attr_img_list']['error'] > 0){

            $attr_img='';

         }else{

       if($_FILES['attr_img_list']['name'][$key]==''){

        if($_POST['img'][$key]!=''){

         $attr_img=$_POST['img'][$key];

      }else{

          $attr_img='';

          }

        }else{

       $aa=time().$_FILES['attr_img_list']['name'][$key];

       $filename=$_FILES["attr_img_list"]["tmp_name"][$key];

           $image_size = getimagesize($filename);

     if (!is_uploaded_file($filename))

           //是否存在文件

          {

             echo "

             exit;

          }

          if($max_file_size > $image_size)

            //检查文件大小

          {

               echo "

               exit;

          }

          if(!in_array($_FILES["attr_img_list"]["type"][$key], $uptypes))

            //检查文件类型

          {

            echo "

            exit;

          }

       

         if(!file_exists($destination_folder))

          {

          mkdir($destination_folder);

          }

         $pinfo=pathinfo($_FILES['attr_img_list']['name'][$key]);

         $ftype=$pinfo['extension'];

          if($ftype==''){

           $attr_img='';

        }else{

           $destination = $destination_folder.$aa;

          }

        $pinfo=pathinfo($destination);

        $fname=$pinfo[basename];

         $destination = $destination_folder.$aa;

         if (file_exists($destination) && $overwrite != true)

         {

            echo "

           exit;

          }

         if(!move_uploaded_file ($filename,$destination))

         {

           echo "

          exit;

         }

         $attr_img=$destination_folder1.$fname;

      }

        }

 

                $attr_value = $_POST['attr_value_list'][$key];

                $attr_price = $_POST['attr_price_list'][$key];

                if (!empty($attr_value))

                {

                    if (isset($goods_attr_list[$attr_id][$attr_value]))

                    {

                        // 如果原来有,标记为更新

                        $goods_attr_list[$attr_id][$attr_value]['sign'] = 'update';

                        $goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;

                        $goods_attr_list[$attr_id][$attr_value]['attr_img'] = $attr_img;

                    }

                    else

                    {

                        // 如果原来没有,标记为新增

                        $goods_attr_list[$attr_id][$attr_value]['sign'] = 'insert';

                        $goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;

                        $goods_attr_list[$attr_id][$attr_value]['attr_img']   = $attr_img;

                    }

                    $val_arr = explode(' ', $attr_value);

                    foreach ($val_arr AS $k => $v)

                    {

                        if (!isset($keywords_arr[$v]) && $attr_list[$attr_id] == "1")

                        {

                            $keywords_arr[$v] = $v;

                        }

                    }

                }

            }

        }

        $keywords = join(' ', array_flip($keywords_arr));


        $sql = "UPDATE " .$ecs->table('goods'). " SET keywords = '$keywords' WHERE goods_id = '$goods_id' LIMIT 1";


        $db->query($sql);


        

        foreach ($goods_attr_list as $attr_id => $attr_value_list)

        {

            foreach ($attr_value_list as $attr_value => $info)

            {

                if ($info['sign'] == 'insert')

                {

                    

                    $sql = "INSERT INTO " .$ecs->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price, attr_img)".

                            "VALUES ('$attr_id', '$goods_id', '$attr_value', '$info[attr_price]', '$info[attr_img]')";

                }

                elseif ($info['sign'] == 'update')

                {

                    $sql = "UPDATE " .$ecs->table('goods_attr'). " SET attr_price = '$info[attr_price]',attr_img = '$info[attr_img]'WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";

                  

                }

                else

                {

                    $sql = "DELETE FROM " .$ecs->table('goods_attr'). " WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";

                }

                $db->query($sql);

            }

        }

    }


前台页面部分:

1、修改goods.dwt文件

 

     

    

     

";


        if ($val['attr_input_type'] == 0)

        {

            $html .= ' ';

        }

        elseif ($val['attr_input_type'] == 2)

        {

            $html .= '' .htmlspecialchars($val['attr_value']). '';

        }

        else

        {

            $html .= '';

            $html .= '' .$GLOBALS['_LANG']['select_please']. '';

            $attr_values = explode("\n", $val['attr_values']);

            foreach ($attr_values AS $opt)

            {

                $opt    = trim(htmlspecialchars($opt));


                $html   .= ($val['attr_value'] != $opt) ?

                    '' . $opt . '' :

                    '' . $opt . '';

            }

            $html .= ' ';

        }

       

if($val['attr_img']==""){

       $html .= ($val['attr_type'] == 1 || $val['attr_type'] == 2) ?

         $GLOBALS['_LANG']['spec_price'].'  

          属性图片:

         
图片尺寸: 800*800px  

          ':'

';

      }else{

       $html .= ($val['attr_type'] == 1 || $val['attr_type'] == 2) ?

         $GLOBALS['_LANG']['spec_price'].'  

          属性图片:

         
图片尺寸: 800*800px  ecshop <wbr>仿淘宝颜色属性可上传图片功能,前台颜色可以用图':

          '

';

      }

 

        $html .= '

     

     

     

      

      

    

     

2、修改lib_goods.php文件下的get_goods_properties()函数

 

function get_goods_properties($goods_id)

{

   

    $sql = "SELECT attr_group ".

           "FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " . $GLOBALS['ecs']->table('goods') . " AS g ".

           "WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";



金睿网络