如果有同學(xué)是按某些朋友用刪除代碼的方法解決問(wèn)題的話,建議你修正此做法,畢竟這是有很大安全風(fēng)險(xiǎn)的。而DEDE本身的安全隱患比較多,任何不安全的修改和操作都會(huì)斷送掉網(wǎng)站的安全。
[代碼]php代碼:
$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,指的是上傳文件的臨時(shí)路徑,如“d:/php/temp/aaa.tmp”。
我們可以看出,這getimagesize($$_key)這個(gè)方法,是在請(qǐng)求PHP臨時(shí)目錄的讀取權(quán)限,如果d:/php/temp沒(méi)有讀取權(quán)限就會(huì)出現(xiàn)無(wú)法讀取的錯(cuò)誤。
@getimagesize($$_key);返回的值其實(shí)是False,而這里DEDE程序員簡(jiǎn)單的使用了@屏掉錯(cuò)誤提示,并沒(méi)有考慮到權(quán)限問(wèn)題,造成用戶無(wú)法了解真正錯(cuò)誤原因是沒(méi)有目錄權(quán)限,而不是文件類型不允許。
一頓茫然。
修改辦法如下:
1,在PHP.ini中添加d:/php/temp的讀寫權(quán)限,這一步基本上都不用操作。因?yàn)檫@個(gè)目錄一般都是可讀寫的,不然任何文件都無(wú)法上傳;
2,部份虛擬主機(jī)用戶,可能添加了php_admin_value open_basedir 指令,在這里,我們要求添加上臨時(shí)目錄的權(quán)限,如:“php_admin_value open_basedir "E:/wwwroot/www.a.com;D:/PHP/temp"”
然后重啟WebServer,至此,問(wèn)題解決。
此文由 網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口 編輯,未經(jīng)允許不得轉(zhuǎn)載?。?!--首頁(yè) > 站長(zhǎng)文章 > 織夢(mèng)cms » DEDEcms 出現(xiàn)“Upload filetype not allow”的原因及解決辦法-->