• PHP.TP框架下商品项目的优化2-图片优化


    图片存储、上传、显示优化

    1、图片路径写进配置文件,当路径有变动时【因业务扩大,服务器存储图片空间不足等】,只需修改配置文件,而不用修改代码

    2、封装显示、上传、删除函数,实现代码重用

      【可类比其他类似的操作】

    1、在/Common/Common/Conf/conf.php中,写入图片配置  C()

    2、把显示图片showImage()的功能封装到/Common/Common/function.php中

    //显示图片
        function showImage($url, $width = '', $height = '')
        {
            $ic = C('IMAGE_CONFIG');    //读取配置文件
            if($width)
                $width = "width='$width'";    //显示宽度(html代码)
            if($height)
                $height = "height='$height'";
            echo "<img $width $height src='{$ic['viewPath']}$url' />";
        }
    showImage()

      在页面中显示图片

    3、把上传图片uploadOne()的功能封装到/Common/Common/function.php中 

    function uploadOne($imgName, $dirName, $thumb = array())
    {
        // 上传LOGO
        if(isset($_FILES[$imgName]) && $_FILES[$imgName]['error'] == 0)
        {
            $ic = C('IMAGE_CONFIG');
            $upload = new ThinkUpload(array(
                'rootPath' => $ic['rootPath'],
                'maxSize' => $ic['maxSize'],
                'exts' => $ic['exts'],
            ));// 实例化上传类
            $upload->savePath = $dirName . '/'; // 图片二级目录的名称
            // 上传文件 
            // 上传时指定一个要上传的图片的名称,否则会把表单中所有的图片都处理,之后再想其他图片时就再找不到图片了
            $info   =   $upload->upload(array($imgName=>$_FILES[$imgName]));
            if(!$info)
            {
                return array(
                    'ok' => 0,
                    'error' => $upload->getError(),
                );
            }
            else
            {
                $ret['ok'] = 1;
                $ret['images'][0] = $logoName = $info[$imgName]['savepath'] . $info[$imgName]['savename'];
                // 判断是否生成缩略图[$thumb数组存储尺寸]
                if($thumb)
                {
                    $image = new ThinkImage();
                    // 循环生成缩略图
                    foreach ($thumb as $k => $v)
                    {
                        $ret['images'][$k+1] = $info[$imgName]['savepath'] . 'thumb_'.$k.'_' .$info[$imgName]['savename'];
                        // 打开要处理的图片
                        $image->open($ic['rootPath'].$logoName);
                        $image->thumb($v[0], $v[1])->save($ic['rootPath'].$ret['images'][$k+1]);
                    }
                }
                return $ret;
            }
        }
    }

       GoodsModel.class.php添加商品时_before_insert()使用

    4、删除图片函数deleteImage()

    function deleteImage($image = array())
    {
        $savePath = C('IMAGE_CONFIG');
        foreach ($image as $v)
        {
            unlink($savePath['rootPath'] . $v);
        }
    }

       GoodsModel.class.php删除商品时_before_delete()使用

     

     

     

     

  • 相关阅读:
    System.Collections.Generic.IEnumerable.cs
    System.Collections.IList.cs
    茶-保健茶:松针茶
    中药-中药名:松针
    植物:松树
    LDAP-常用命令
    dsadm-dsconf数据导入导出
    SUN-LDAP6.3_RHEL 5.0-卸载LDAP
    passwd-shadow文件
    文件及目录的权限
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/6952754.html
Copyright © 2020-2023  润新知