解決Phpcms v9編輯器無法上傳圖片和附件BUG
2019-10-17 22:31:08
供稿:網友
CMS模板網為了避免黑客猜出我的管理地址,在后臺-》設置-》相關設置-》安全設置里面填寫了一個二級域名作為管理地址,并修改caches/configs/system.php 下的'admin_url' => 'admin.主域名.com', //允許訪問后臺的域名
但是出現了后臺內容無法上傳附件的問題,只要點擊上傳圖片或附件就會卡死。
經過仔細分析發現BUG,首先按照官方設置了管理后臺專用的二級域名后,其他的域名訪問后臺管理就會出現沒有權限訪問的提示,會不會上傳圖片的時候調用的編輯器地址依然用的是system.php里面'app_path' => 'http://www.主域名.com/',生成的地址呢,這樣上傳圖片的時候,就會出現上傳的時候打開頁面沒有權限卡死,通過一個網友在網站上發的博客,證實確實是這樣BUG的產生,就是當管理員設置了專用的管理域名的時候,后臺所使用的編輯器卻還在使用主域名調用的編輯器,所以造成上傳附件和圖片沒有權限。
解決辦法
方法1
不使用專用的二級域名管理后臺,放開權限。一切ok了
方法2
就是糾結必須用專用的二級域名管理后臺。
1、修改system.php 在'app_path' => 'http://www.主域名.com/'下面添加一行
'up_path' => 'http://cp.cuoxin.com/',//后臺域名配置地址
2、修改/phpcms/base.php
加入如下代碼
//后臺CKEditor地址
define('UP_PATH',pc_base::load_config('system','up_path'));
3、修改/phpcms/libs/classes/form.class.php
將
if($allowupload) $str .= "filebrowserUploadUrl : '".APP_PATH."index.php?m=attachment&c=attachments&a=upload&module=".$module."&catid=".$catid."&dosubmit=1',/r/n";
改為
if($allowupload) $str .= "filebrowserUploadUrl : '".UP_PATH."index.php?m=attachment&c=attachments&a=upload&module=".$module."&catid=".$catid."&dosubmit=1',/r/n";
經過這幾部修改之后,就ok了
另外這個BUG還造成了使用專用后臺二級管理域名的時候,無法保存遠程圖片的錯誤。希望官方抓緊修改這個bug,加上對后臺專用二級域名的驗證,再調用文本編輯器和遠程圖片保存的問題。