修改ECSHOP,支持图片云存储化(分离到专用图片服务器)

2016-07-07 14:55 来源:www.chinab4c.com 作者: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.'\0', $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;
}

回答:



市场可供选择的云存储空间很多,至于我用哪家就不专门做广告了。如果大家想方便又安全,最好选择支持 SFTP的,而且注意目录是否能放下超过1万个文件。
另外布点的服务器最好超过10个城市节点,包括电信、联通、移动和教育网

确实没看明白是什么意思。

非常实用的功能

如何上传到专用图片服务器,专用图片服务器得有用户名和密码吧,不能弄个二级域名就上传啊,我觉得是这样,

我的图片服务器是有sftp 功能的。我的服务器安装了lftp,写了个脚本定时同步本地图片到远程的图片服务器(每5分钟一次)。


把图片服务器分离到另外一个域名(专用图片服务器)上,提高网页和图片的加载速度。


这个太实用了

把图片服务器分离到另外一个域名(专用图片服务器)上,提高网页和图片的加载速度。

回复netaxcess
layen 发表于 2012-11-5 19:34


有朋友问起,如何写脚本定时同步图片到专用的图片服务器,那我就把自己的方法分享一下
写了个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
exit

感谢分享, 赞!

请问如何用ecshop的fckeditor编辑器实现跨域、跨空间、跨网站站点上传图片,比如ecshop程序装在A空间,要让图片...传到B空间去, 以便实现图片...和程序分离 请问怎么通过A空间ecshop的fckeditor编辑器把图片传到B空间呢

以后用ecshop的fckeditor编辑器添加新商品时要把详细描述中的图片传到新增的空间 要怎么改呢