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

Joomla JCE 編輯器解決中文檔名上傳失敗:改用時間戳隨機命名

     編輯:PHP 綜合知識

問題現象

JCE 與 CKEditor 在處理中文檔名時均存在缺陷:上傳失敗、或上傳成功但 Web 無法存取(URL 編碼不一致)。

解決思路

修改 JCE 核心檔案,將儲存檔名改為純數字時間戳 + 隨機數,繞過編碼問題。同時 JCE 預設上傳後自動選中檔案,體驗優於 CKEditor。

修改步驟

  1. 定位檔案:components/com_jce/editor/extensions/browser/file.php
  2. 找到 1017-1020 行(版本可能略有差異,搜尋關鍵字):
    // strip extension
    $name = WFUtility::stripExtension($name);
    // make file name 'web safe'
    $name = WFUtility::makeSafe($name, $this->get('websafe_mode', 'utf-8'));
  3. 替換為:
    $name = date('Ymd-His-', time()) . rand(999);

效果

  • 檔名格式:20240515-143022-567,純 ASCII,零編碼風險。
  • 保留副檔名邏輯(原碼會在後續自動附加)。
  • 適用 Joomla 1.5 + JCE 2.1.3,其他版本請對應調整行號。

提醒

修改核心檔案會在更新時被覆蓋,建議備份或製作覆寫插件。長期專案建議向上游回報或改用支援 Unicode 檔名的現代編輯器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved