帝国cms远程图片本地化不生效原因1、图片格式和大小设置问题帝国默认的图片格式不包括pg,但是我们现在qq截图等都是pg图片格式,加进去即可,假如源站的图片格式帝国后台没有,那肯定保存不了了。系统参数设置—&mdash
帝国cms远程图片本地化不生效原因
1、图片格式和大小设置问题
帝国默认的图片格式不包括png,但是我们现在qq截图等都是png图片格式,加进去即可,假如源站的图片格式帝国后台没有,那肯定保存不了了。
系统参数设置——文件设置——文件扩展名
同时设置可以上传图片大小。
2、服务器配置问题
需要在php.in中把allow_url_fopen设置为on
3、入库超时502问题
这个在图片数量特别多的时候可能出现,把php执行时间设置长一点,一般默认60s,改成几分钟即可
4、源站图片链接是https
这个是现在遇到比较多的一个问题,目前7.5版本是不支持采集https图片的,需要增加ssl模块支持
打开文件/e/class/connect.php:
第一步:在connect.php文件最上面,<?php
下面添加以下函数:
function getHTTPS($url) {
$ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_REFERER, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);$result = curl_exec($ch);curl_close($ch);return $result;
}
第二步:搜索function ReadFiletext,找到以下函数:
function ReadFiletext($filepath){ $filepath=trim($filepath); $htmlfp=@fopen($filepath,"r"); //远程 if(strstr($filepath,"://")) { while($data=@fread($htmlfp,500000)) { $string.=$data; } } //本地 else { $string=@fread($htmlfp,@filesize($filepath)); } @fclose($htmlfp); return $string;}
换成以下代码:
function ReadFiletext($filepath){ $filepath=trim($filepath); $htmlfp=@fopen($filepath,"r"); //远程 if(strstr($filepath,"https://")){ return getHTTPS($filepath); } if(strstr($filepath,"://")) { while($data=@fread($htmlfp,500000)) { $string.=$data; } } //本地 else { $string=@fread($htmlfp,@filesize($filepath)); } @fclose($htmlfp); return $string;}
以上就是常见的帝国cms远程图片保存失败的原因。
声明:本文系互联网搜索百度而收集整理,不以盈利性为目的,文字、图文资料源于互联网且共享于互联网。
如有侵权,请联系 hzy98999#qq.com (#改@) 删除。
如有侵权,请联系 hzy98999#qq.com (#改@) 删除。