iwebshop与阿里云OSS图片分离式插件帮助文档
注意事项:该文档针对 iwebshop 4.7 所写,不同版本略有不同,烦请各位不要直接照搬或可以咨询客服。
1、到阿里云申请开通购买<对象存储OSS>产品 https://www.aliyun.com/product/oss
2、申请成功后添加一个Bucket
3、复制本插件到plugins/目录下面
4、到商城后台插件列表,安装插件<8sk阿里云OSS图片分离式插件>
5、配置插件
5.1、 accessKeyId和accessKeySecret配置
登陆阿里云控制台,鼠标移到右上角用户名,点击accessKeys进入创建。 https://ak-console.aliyun.com/#/accesskey
5.2、访问域名在阿里云控制台<对象存储OSS>Bucket属性中可见,如果配置了自定义二级域名则填写自定义的二级域名。例如oss-cn-hangzhou.aliyuncs.com
5.3、如果配置了自定义二级域名,是否CNAME 选择<是>,如果没有配置则选择<否>
5.4、bucket名称为你自己创建的bucket名称
5.5、后台将插件里填写相应配置并将状态选择开启。
6、商品详情页、文章详情、图片上传修改
修改/lib/web/js/source/editor/php/upload_json.php 第110行,在 $file_url = $save_url .
$new_file_name; 后面添加以下代码。
// 8sk阿里云OSS图片分离式插件
$oss_path = str_replace(IUrl::creatUrl(''),'',$file_url);
$ossfileName = plugin::trigger('uploadOss',$file_path,dirname($oss_path));
$file_url = $ossfileName ? $ossfileName : $file_url;
修改 classes/photoupload.php 文件
找到245行
$fileName = $val['dir'].$val['name'];
后面添加如下代码
/*OSS_START*/
$oss_path = str_replace(IUrl::creatUrl(''),'',$fileName);
$ossfileName = plugin::trigger('uploadOss',$fileName,dirname($fileName));
$fileName = $ossfileName ? $ossfileName : $fileName;
/*OSS_END*/
7、产品图片:
修改views\sysdefault\goods\goods_edit.html 文件 268 行
<img name="picThumb" onclick="defaultImage(this);" style="margin:5px; opacity:1;width:100px;height:100px" src="{webroot:<%=picRoot%>}" alt="<%=picRoot%>" />
去掉{webroot: 改为
<img name="picThumb" onclick="defaultImage(this);" style="margin:5px; opacity:1;width:100px;height:100px" src="<%=picRoot%>" alt="<%=picRoot%>" />
8、首页幻灯片:
修改views\sysdefault\system\conf_base.html 文件 183 行
<img src="{url:}<%=img%>" width="150px" /><br />
去掉{url:}改为
<img src="<%=img%>" width="150px" /><br />
9、广告位附件上传:
修改views\sysdefault\tools\ad_edit.html 文件 116行
<p><img src="{webroot:}<%=content%>" width="150px" /></p>
去掉{webroot:} 改为
<p><img src="<%=content%>" width="150px" /></p>
修改
controllers\tools.php 文件
679行
$content = $dir.'/'.$result[0]['name'];
后添加
$ossfileName = plugin::trigger('uploadOss',$content,dirname($content));
$content = $ossfileName ? $ossfileName : $content;
10、使用OSS缩略图:
修改 controllers\pic.php 文件 128行
$width = $widthData[1];
$height = $heightData[1];
后添加
if(false != strpos($imgSrc,"http://")){
$thumbSrc=$imgSrc.'?x-oss-process=image/resize,m_pad,w_'.$width.',h_'.$height;
$this->redirect($thumbSrc);
}
备注:iwebshop 测试中如果一直传一张图的话,iwebshop 保存到数据表里的 MD5 值是一样,所以在存表的时候他就不会会检测MD5是不是一样,一样的话就不会保存那张图也就可能会出现你上传的图没有上传到 OSS 上。记得清理缓存