博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修改ECSHOP,支持图片云存储化(分离到专用图片服务器)
阅读量:6440 次
发布时间:2019-06-23

本文共 1531 字,大约阅读时间需要 5 分钟。

hot3.png

为了提高页面加载速度和适应中国复杂的网络环境,我决定把所有商品图片都分离到专业的云存储服务器上,具有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.'\0', $goods['goods_desc']);
}
到$smarty->assign('goods', $goods);
这一句代码之前即可
在/includes/lib_common.php中大约2187行,找到下面代码,增加红色部位即可。
/**
* 重新获得商品图片与商品相册的地址
*
* int $goods_id 商品ID
* string $image 原商品相册图片地址
* boolean $thumb 是否为缩略图
* string $call 调用方法(商品图片还是商品相册)
* 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

转载于:https://my.oschina.net/u/1260221/blog/421916

你可能感兴趣的文章
Intel Fortran 调用Delphi编制的DLL
查看>>
golang包time用法详解
查看>>
c#文件分割与合并 part 2
查看>>
[Leetcode] Path Sum
查看>>
Ext江湖
查看>>
一起谈.NET技术,实战ASP.NET大规模网站架构:Web加速器
查看>>
RHEL 6.6下Python 2.6.6升级到Python 3.6.6
查看>>
linux 内核启动过程以及挂载android 根文件系统的过程 ( 转)
查看>>
shell每日更新(7)
查看>>
单词的个数
查看>>
从程序员到项目经理(27):怎样给领导汇报工作
查看>>
eclipse工程 'cocostudio/CocoStudio.h' file not found
查看>>
045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)
查看>>
dockerfile创建php容器(安装memcached、redis、gd、xdebug扩展)
查看>>
转:面对JXTA,我迷茫了
查看>>
IT人必须学会的职场四原则
查看>>
Android之剪贴薄实现
查看>>
WPF数据模板和控件模板
查看>>
Sonix SN9P701 OCR点读笔二维码识别源码
查看>>
oracle 单引号 双引号 连接符
查看>>