ошибка при загрузке нескольких файлов - PullRequest
0 голосов
/ 18 ноября 2011

Я использовал следующий код несколько раз прежде, и недавно нашел его, чтобы попробовать и использовать снова.Кажется, теперь есть ошибка, которую я не могу исправить, кто-нибудь может увидеть, что я делаю неправильно?

foreach ($_FILES['image']['name'] as $i => $name) {     

    $uploadfile = $uploaddir . basename($name);

    if (!move_uploaded_file($file_post["tmp_name"][$i],$uploadfile)) 
    {
        echo set_e('error','Image ['.$i.'] not uploaded','');
    }


}

Я получаю ошибку:

Warning: Invalid argument supplied for foreach() in /sitefolder/functions.php on line 1096

строка 1096 - первая строкав первом поле кода

1 Ответ

3 голосов
/ 18 ноября 2011

Во-первых, никогда не используйте ключи массива, не проверив их существование. Оберните код в

if (array_key_exists('image', $_FILES)) 
{
  // ...
} 
else 
{
  // error handling
}

Во-вторых, даже если ключ существует, $_FILES['image']['name'] должен быть строкой, вы все равно не можете передать его в foreach. Лучше:

foreach ($_FILES as $file) 
{     
  $uploadfile = $uploaddir . basename($file['name']);
  if (!move_uploaded_file($file["tmp_name"], $uploadfile)) 
  {
      echo set_e('error','Image ['.$i.'] not uploaded','');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...