2014-10-31 165 views
0

我的脚本在Apache服务器上运行正常。但是,当我迁移到nginx的服务器,我得到了错误:PHP消息:PHP警告:为foreach()提供的无效参数

PHP message: PHP Warning: Invalid argument supplied for foreach() in

而且有代码:

 foreach($this->_uploaded as $name) { 
     $file = pathinfo($name); 
     $ad_count = $file['filename']; 
     $path = '/images/ads/'.$friendly_name.'-black-friday-'.($ad_count).'-' . $this->createRandomString() . '.' . $file['extension']; 

     if(!copy(__SITE_PATH . "/public/tmp/" . $name, __FRONTEND_PATH . $path)) { 
      return false; 
     } 
     $this->db->query("INSERT INTO stores_ads (stores_id, path, sort) VALUES (".$id.", '".$path."', ".(int)$ad_count.")"); 
     @unlink(__SITE_PATH . "/public/tmp/" . $name); 
    } 

你知道为什么?我认为它可能会得到上传文件夹的错误路径?或者nginx配置有问题?

这是全码:

+1

'$此 - > _ uploaded'必须是一个数组。试试'print_r($ this - > _ uploaded)',看看它是否是一个数组。 – Rasclatt 2014-10-31 03:20:23

+0

'$ this - > _ uploaded'是什么? – 2014-10-31 03:20:33

+0

同样的事情,你需要确保'$ this - > _ uploaded'是一个数组。 – Rasclatt 2014-10-31 03:26:52

回答

0

添加类似:

if (is_array($this->_uploaded)) { 

//add your code 
    foreach($this->_uploaded as $name) { 
     $file = pathinfo($name); 
     # code... 
    } 
} 

希望这有助于:)

+0

它没有再显示错误,但我无法上传文件。 – 2014-10-31 12:47:37

相关问题