日本av碟片

phpcms無法上傳圖片提示undefined的解決方法

發布時間:2020-01-11 11:16:32 來源:青鋒建站 作者:青鋒建站
  phpcms無法上傳圖片大多數原因是由于apache,nginx,PHP環境,系統環境所致,更直接的說是環境導致的權限受限所致。以下是青鋒建站給大家分享的在各種情況下phpcms無法上傳圖片提示undefined或空白的解決方法。

phpcms無法上傳圖片

windows server系統下phpcms無法上傳圖片的原因與解決

1、apache對臨時文件沒有相應權限
  例如青鋒建站在D盤新建一臨時文件tmp/uploads,并在PHP.INI文件中修改臨時文件的目錄路徑:’upload_tmp_dir= "D:/tmp/uploads" file_uploads = On。同時對這一臨時文件設置讓apache運行所使用的用戶具備完全控制權限。

2、phpcms附件目錄不具備定權限
 給予uploadfile寫入權限(必須是apache所使用的用戶)。

3、修改php可操作文件
  由于phpcms上傳附件類使用的是copy函數,有時需要對操作的目錄具備php可訪問的權限,也就是apache虛擬主機中的php_admin_value open_basedir "D:wwwsjzphp"選項,將這一選項修改php_admin_value open_basedir "D:/tmp/uploads;D:/www/sjzphp",即表示PHP同時可操作臨時文件目錄和網站主目錄。還有一種解決方法就是將phpcms/libs/classes/attachment.class.php中的copy函數替換為move_uploaded_file。將copy函數修改為move_uploaded_file函數后,可以不用設置php_admin_value open_basedir這一參數即可。

centos(linux)系統phpcms無法上傳圖片的解決方法

  linux下phpcms無法上傳圖片主要是權限的問題,可能是由于操作系統等導致。我們假設網站目錄為 /home/www/sjzphp。
1、臨時文件和附件目錄無權限
  一般來說apache在linux環境下以user:apache;group:apache的方式運行,因此需要給予臨時文件目錄和附件目錄相應的讀寫權限。一種最好的解決方法是新建一臨時文件,設置權限的方式是將這兩個目錄設置擁有者為apache,例如我們在/home/www/目錄下新建一臨時目錄tmp,然后設置權限:chown -R apache:apache /home/www/tmp;chown -R apache:apache /home/www/sjzphp/uploadfile。
2、selinux造成對文件的保護
  查看selinux狀態,sestatus,將selinux關閉setenforce 0,可以將selinux臨時關閉。這樣一般就可以解決問題,當然還可能由于其他特殊原因就是chattr、yunsuo安全軟件的問題導致。以下青鋒建站將給大家詳細說明。
3、其他特殊原因
  如果對uploadfile設置了chattr,會造成無法修改權限,可以取消uploadfile的相應屬性設置:chattr -iR uploadfile。還有就是如果服務器安裝了yunsuo安全軟件后,會導致root用戶無法對網站目錄設置權限或創建文件的權限,這時可以把yunsuo軟件缷載:/usr/local/yunsuo_agent/uninstall。

找到phpcms無法上傳圖片的原因

  雖然通過一些方法可以解決,但是我們有時候不能確定是哪種原因導致,可以采用增加代碼來找到錯誤原因,這包括查看錯誤日志。這里我們使用另一種方法來作判斷,可判斷是臨時文件的原因還是附件目錄的問題。打開phpcms/libs/classes/attachment.class.php文件,在大約112行,if(!$this->overwrite && file_exists($savefile)) continue;這一句后面依次增加以下代碼來測試問題所在:
增加此代碼可以測試臨時文件是否存在:var_dump($file['tmp_name']);exit;
增加此代碼可以測試保存目錄是否存正確:var_dump($savefile);exit;
增加此代碼可以測試執行函數是否正確
if (!move_uploaded_file($file['tmp_name'], $savefile)) {
                var_dump("failed to move_uploaded_file");exit;
            }
            else
            {
                var_dump("success to move_uploaded_file");exit;
            }
增加這些代碼后,上傳圖片并不會出現提示,我們可以通過查看無素的方式來找到錯誤輸出,如下圖:

  以上就是青鋒建站給大家分享的phpcms無法上傳圖片提示undefined的解決方法。青鋒建站,提供專業的高品質網站制作服務,包括網站建設,SEO,網絡營銷,phpcms建站開發php網站建設知名品牌,全國接單,為企業構建強有力的營銷平臺。
分享到:

Copyright © 2016-2026 青鋒建站 版權所有

日本av碟片 北单比分3串1奖金封顶吗 35即时比分 7m篮球比分下载红色 雪缘园即时指数 竞彩比分网竞彩比分网 宁夏11选5 国外专家猜竞彩比分 sina北单比分 篮球比分直播捷报网 亿客隆彩票 超级大乐透 p3试机号 云南11选5 大赢家篮球即时比分 新浪体育冰雪 皇冠足球指数网抽水