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

DedeCMS 上傳圖片提示「Upload filetype not allow」一行代碼修復

     編輯:PHP 相關知識

DedeCMS 後台上傳圖片時跳出 Upload filetype not allow,明明是合法圖片格式卻被拒絕。經排查發現是核心檔案變數名稱拼寫錯誤導致。

錯誤原因

/include/uploadsafe.inc.php 第 45 行定義允許上傳的圖片副檔名陣列,變數名寫成 $imtypes,但後續判斷邏輯引用的是 $imgtypes,導致白名單為空,所有檔案均被攔截。

修復步驟

  1. 開啟 /include/uploadsafe.inc.php
  2. 找到第 45 行左右:
// 錯誤寫法
$imtypes = array('jpg','jpeg','gif','png','bmp');
  1. 修正為:
// 正確寫法
$imgtypes = array('jpg','jpeg','gif','png','bmp');
  1. 儲存檔案
  2. 後台「系統」→「系統基本參數」→「性能選項」→「清除緩存」

驗證修復

重新上傳 JPG/PNG/GIF 圖片,應可正常完成。若仍失敗,檢查:

  • 副檔名是否在 $imgtypes 陣列中(預設不含 webp、svg)
  • php.ini 的 upload_max_filesize、post_max_size 是否足夠
  • 目錄 /uploads/ 寫入權限(Linux: chmod 755、擁有者為 www-data)

擴充允許格式(如需支援 WebP)

$imgtypes = array('jpg','jpeg','gif','png','bmp','webp','svg');

同步修改前端編輯器(如 CKEditor、UEditor)的允許上傳格式設定。

同類問題快速查找技巧

grep -rn "Upload filetype not allow" /path/to/dedecms/

可快速定位所有相關判斷邏輯,避免漏改。

提醒:DedeCMS 官方已停止更新,存在多處安全漏洞。生產環境建議遷移至現代 CMS(如 Laravel、ThinkPHP、WordPress 等主動維護框架)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved