PHPExcel中open_basedir restriction in effect的解决方法

用PHPExcel做导出execl的时候发现在本地没有问题,但是把网站传到租用的服务器的时候就报错,具体如下:

Warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/data/home:/usr/home:/data/home/tmp:/usr/home/tmp:/var/www/disablesite) in /data/home/【服务器名称】/htdocs/【项目地址】/Classes/PHPExcel/Shared/File.php on line 136



找到对应的File.php的136行,只是sys_get_temp_dir方法的最后一行,查阅网上的方法直接把该方法给替换掉就好了。
代码如下:
public static function sys_get_temp_dir()
  {
 // use upload-directory when defined to make it running on
 // environments having very restricted open_basedir configs
  if (ini_get('upload_tmp_dir')!==false) 
  {
  if($temp = ini_get('upload_tmp_dir')) 
  {
   if (file_exists($temp)) 
   { 
     return realpath($temp); 
   }
  } 
  } 
  // sys_get_temp_dir is only available since PHP 5.2.1
  // http://php.net/manual/en/function.sys-get-temp-dir.php#94119
  if ( !function_exists('sys_get_temp_dir'))
   {
     if ($temp = getenv('TMP')) 
  {
   if (file_exists($temp)) 
   {
      return realpath($temp);
   }
   if (($temp!='') && file_exists($temp))
   {
    return realpath($temp); 
   }
     }
 
     if ($temp = getenv('TEMP')) 
  {
    if (file_exists($temp)) 
    {
    return realpath($temp);
    }
  }
    } 
     }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值