zoukankan      html  css  js  c++  java
  • 修改ECSHOP,支持图片云存储化(分离到专用图片服务器)

    为了提高页面加载速度和适应中国复杂的网络环境,我决定把所有商品图片都分离到专业的云存储服务器上,具有CDN加速功能。

    首先,生成一个域名 img.xxxx.com 并映射到自己的云存储别名,然后把全部图片(含目录结构)上传到 云存储空间。

    在config.php 增加
    /* 商品详情图片地址替换 */
    // 总开关,1启用云存储,0使用本地图片
    $imgserver = 1;
    // 匹配图片前缀,即上传图片src的共同部分,在“/”前加“”
    $imgserver_pattern = '/images/upload';
    // 域名前缀,最后不用加“/”
    $imgserver_path = 'http://img.xxxx.com';


    goods.php 在170-180行左右中寻找
    /* 购买该商品可以得到多少钱的红包 */
            if ($goods['bonus_type_id'] > 0)

    加入以下部分:
    // 商品详情图片地址替换, by layen 明朗
    if ($imgserver == 1) {
        $goods['goods_desc'] = preg_replace('/'.$imgserver_pattern.'/i', $imgserver_path.'', $goods['goods_desc']);
    }

    到$smarty->assign('goods', $goods);
    这一句代码之前即可


    在/includes/lib_common.php中大约2187行,找到下面代码,增加红色部位即可。

    /**
    * 重新获得商品图片与商品相册的地址
    *
    * @param int $goods_id 商品ID
    * @param string $image 原商品相册图片地址
    * @param boolean $thumb 是否为缩略图
    * @param string $call 调用方法(商品图片还是商品相册)
    * @param boolean $del 是否删除图片
    *
    * @return string   $url
    */
    function get_image_path($goods_id, $image='', $thumb=false, $call='goods', $del=false){
        $url = empty($image) ? $GLOBALS['_CFG']['no_picture'] : $image;
      
        if( $GLOBALS['imgserver'] == 1){
            $url = str_replace('images/','http://img.xxxx.com/images/',$url);  // 修改产品主图路径,by layen 明朗
        }
       
        return $url;
    }

    有朋友问起,如何写脚本定时同步图片到专用的图片服务器,那我就把自己的方法分享一下
    写了个syncimages.lm脚本,由crontab每5分钟通过lftp执行一遍。内容如下:

    open v0.ftp.upyun.com  //我使用的是又拍云的图片服务
    user "username"  "password"
    lcd /home/www/ecshop/images
    cd /images             //云服务器上,我也建立了 images目录
    mirror -R --verbose=3 --only-newer --only-missing --parallel=3  --exclude upload

    转载:http://bbs.ecshop.com/thread-1118291-1-1.html

  • 相关阅读:
    js模板
    block,inline和inline-block概念和区别
    jquery parent和parents,children和find
    (CVE-2015-5254)ActiveMQ 反序列化漏洞复现
    办公系统致远OA漏洞
    CVE-2018-16509 GhostScript 沙箱绕过(命令执行)漏洞
    phpmyadmin-相关漏洞详解
    XXL-JOB(任务调度中心)-反弹getshell
    组策略(域和域服务的搭建)
    解决在NAT模式下物理机无法ping通虚拟机的问题
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4532263.html
Copyright © 2011-2022 走看看