大家或许知道,本身Phpcms v9的一些写法最初没有考虑https网址,于是需要改造内部的一些函数写法,在之前的文档Phpcms v9配置ssl证书让做到https访问的方法和Phpcms v9安全通道HTTPS内部程序改造里边,具体讲述了Phpcms v9 SSL证书的配置和内部程序方法的改造问题,今天CMSYOU在这里分享一处关于https网址写法bug的更新。
这一处更新是最近发现的:对应已经发布的文章,再次编辑修改的时候,如果编辑器里边有图片,在提交保存的时候会将图片无判断本站图片而再次保存下来,造成图片重复保存上传。
这一Bug是基于内容字段开启了编辑器保存远程图片,具体设置在内容 > 内容相关设置 > 模型管理里边设置,截图如下:
位置:内容 > 内容相关设置 > 模型管理 > 模型字段管理
Phpcms v9模型字段内容content,属于editor类型,是否保存远程图片:是
如上图,如果勾选了保存远程图片,则会在启用https后出现上述的重复上传附件的Bug问题。
如果修正Phpcms v9编辑器内容重复上传图片的Bug?
具体修改phpcms的attachment附件类函数:phpcms/libs/classes/attachment.class.php文件中的function download()方法。
具体修改代码:
foreach($remotefileurls as $k=>$file) {
if(strpos($file, '://') === false || strpos($file, $upload_url) !== false) continue;
……
}
修改为:
foreach($remotefileurls as $k=>$file) {
//判断是否同一域名,避免重复上传编辑器中的图片 @cmsyou
$filehost = parse_url(strtolower($file));
$uploadhost = parse_url(strtolower($upload_url));
if(strpos($file, '://') === false || strpos($file, $upload_url) !== false || $filehost['host'] == $uploadhost['host']) continue;
……
}
另外需要修改function fillurl()函数中的http://网址判断写法,做到更加完善。此更新已经更新到Phpcms v9安全通道HTTPS内部程序改造里边,欢迎已购买的用户联系下载更新使用。
点击加载更多