DedeCMS上傳圖片時有的網站會出現提示Upload filetype not allow,這里武林網告訴大家解決辦法!
方法一:上傳圖片的話,在編輯器里是無效的,可能會出現“Upload filetype not allow”,
我們找到并打開/include/uploadsafe.inc.php文件,將其中的第45行代碼:$imtypes = array改成$imgtypes = array,再更新緩存即可。
方法二:
先看下面這段代碼:
$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即可。