首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

CodeIgniter mkdir 權限問題:字串與八進位數字的陷阱

     編輯:PHP 綜合知識

錯誤現象

上傳檔案失敗:A problem was encountered while attempting to move the uploaded file to the final destination.

問題代碼

// 錯誤:權限字串 '777' 被當作八進位 0777 以外的值處理
if (!is_dir($cache_path)) mkdir($cache_path, '777');

正確代碼

// 正確:八進位數字 0777(注意前導 0)
if (!is_dir($cache_path)) mkdir($cache_path, 0777);

原因解析

  • PHP 權限參數需為**八進位整數**(如 0777、0755)
  • 字串 '777' 會被轉為十進位 777,對應八進位 1411,權限錯誤
  • Linux/CentOS 環境下目錄需 x 執行權限才能進入

補充建議

// 遞迴建立 + 明確權限 + 錯誤檢查
if (!is_dir($cache_path)) {
    if (!mkdir($cache_path, 0755, true)) {
        log_message('error', "無法建立目錄: $cache_path");
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved