2012-04-19 8 views
-3

У меня есть сценарий загрузки для загрузки некоторых файлов в каталог. каждый файл проходит через цикл и будет проверяться, есть ли ошибки с размером или окончанием или даже нет. в случае отсутствия ошибки он будет загружен.Как получить число результатов из цикла

if (is_array($_FILES ['image'] ['tmp_name'])) { 
    foreach ($_FILES ['image'] ['tmp_name'] as $key => $val) { 
     ... 

     if (! in_array ($fileExt, $allowedExtensions)) { 
      $errors [$fileName] [] = "format not accepted"; 
     }... 

      if ((count ($errors1) == 0) && (count ($errors) === 0)) { 
       if (move_uploaded_file ($fileTemp, $fileDst)) { 
       //...        
      } 
     } 
    } 
} 

Мой вопрос в том, есть ли способ подсчитать количество загруженных файлов, которые успешно прошли через этот цикл? большое спасибо.

+2

базовый счетчик?! – malletjo

+1

http://stackoverflow.com/questions/4367861/how-can-i-know-a-number-of-uploaded-files-with-php – Seabass

ответ

2

Необходимо учитывать каждую успешную загрузку.

, как показано ниже:

if (is_array($_FILES ['image'] ['tmp_name'])) { 
    $Counter=0;  // initialize counter variable 
     foreach ($_FILES ['image'] ['tmp_name'] as $key => $val) { 

      $fileName = $_FILES ['image'] ['name'] [$key]; 
      $fileSize = $_FILES ['image'] ['size'] [$key]; 
      $fileTemp = $_FILES ['image'] ['tmp_name'] [$key]; 

      $fileExt = pathinfo ($fileName, PATHINFO_EXTENSION); 
      $fileExt = strtolower ($fileExt); 

      if (empty ($fileName)) 
      continue; 

      if (! in_array ($fileExt, $allowedExtensions)) { 
       $errors [$fileName] [] = "format not accepted"; 
      }... 

       if ((count ($errors1) == 0) && (count ($errors) === 0)) { 
        if (move_uploaded_file ($fileTemp, $fileDst)) { 
        //...   
        $Counter++;  // increment if successful upload 
       } 
      } 
     } 
    } 

echo $Counter; //it will give total count of successfully uploaded files 
+0

Это то, что я искал. удивительно, насколько это просто. Большое спасибо. – bonny

1

Просто используйте переменную счетчика. Насколько я понимаю, вы успешно загрузили файл, когда move_uploaded_file возвращает true, не так ли?

$counter = 0; 
//... your code 
if ((count ($errors1) == 0) && (count ($errors) === 0)) { 
    if (move_uploaded_file ($fileTemp, $fileDst)) { 
     $counter++; 
     //... some other code 
    } 
} 

Итак, когда вы выходите из цикла foreach$counter будет иметь ожидаемое значение.

Смежные вопросы