DEDE出現“Upload filetype not allow”的原因及解決辦法_DedeCms教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
本人是在近日升級DEDE5.6以后出現這個問題的,以下說明錯誤原因和解決辦法。
如果有同學是按某些朋友用刪除代碼的方法解決問題的話,建議你修正此做法,畢竟這是有很大安全風險的。而DEDE本身的安全隱患比較多,任何不安全的修改和操作都會斷送掉網站的安全。
- $imtypes = array("image/pjpeg","image/jpeg","image/gif","image/png","image/xpng","image/wbmp","image/bmp");
- if(in_array(strtolower(trim(${$_key.'_type'})),$imtypes))
- {
- $image_dd = @getimagesize($$_key);
- if (!is_array($image_dd))
- {
- exit('Upload filetype not allow !');
- }
- }
這里的$$_key,指的是上傳文件的臨時路徑,如“d:/php/temp/aaa.tmp”。
我們可以看出,這getimagesize($$_key)這個方法,是在請求PHP臨時目錄的讀取權限,如果d:/php/temp沒有讀取權限就會出現無法讀取的錯誤。
@getimagesize($$_key);返回的值其實是False,而這里DEDE程序員簡單的使用了@屏掉錯誤提示,并沒有考慮到權限問題,造成用戶無法了解真正錯誤原因是沒有目錄權限,而不是文件類型不允許。
一頓茫然。
修改辦法如下:
1,在PHP.ini中添加d:/php/temp的讀寫權限,這一步基本上都不用操作。因為這個目錄一般都是可讀寫的,不然任何文件都無法上傳;
2,部份虛擬主機用戶,可能添加了php_admin_value open_basedir 指令,在這里,我們要求添加上臨時目錄的權限,如:“php_admin_value open_basedir "E:/wwwroot/www.a.com;D:/PHP/temp"”
然后重啟WebServer,至此,問題解決。
相關DedeCms教程:
- Dedecms生成百度地圖圖文教程
- 織夢dedecms生成下拉式友情鏈接列表
- DEDECMS使用拼音首字母做欄目名稱
- 織夢DEDECMS站群增強版 DedeCMS搭建站群首選
- DedeCMS Error:Tag disabled:php錯誤的完整處理方法
- dedecms編碼轉換方法 gbk轉UTF-8,UTF-8轉GBK
- 防XSS,sql注射,代碼執行,文件包含的通用代碼
- DedeCms教程:優化DedeCMS搜索結果
- DedeCms教程:Linux+Apache+PHP+MySQL服務器環境(CentOS篇)
- DedeCms教程:LuManager服務器管理軟件安裝DEDECMS軟件
- DedeCms教程:Ubuntu/Debian上安裝 PHP 5.3, Nginx 和 PHP-fpm
- DedeCms教程:windows server 2003 php 環境搭建