DEDE出现“Upload filetype not allow”的原因及解决

 
 
  1. $imtypes = array("image/pjpeg","image/jpeg","image/gif","image/png","image/xpng","image/wbmp","image/bmp"); 
  2.  if(in_array(strtolower(trim(${$_key.'_type'})),$imtypes)) 
  3.  { 
  4.  $image_dd = @getimagesize($$_key); 
  5.  if (!is_array($image_dd)) 
  6.  { 
  7.  exit('Upload filetype not allow !'); 
  8.  } 
  9.  }
  10. 这里的$$_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,至此,问题解决。

     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值