Как приостановить обработку цикла php и показать ответ, а затем продолжить обработку?

#php #upload #response

#php #загрузка #ответ

Вопрос:

У меня есть цикл foreach в php-скрипте для загрузки изображений / видео.Я хочу показать ответ сразу после завершения загрузки изображения, если пользователь загружает оба видео и изображения одновременно.(Используя dropzone.js с параллельной загрузкой).как я могу это сделать?Ниже я привожу примерную структуру моего кода, поскольку он довольно большой.

 <?php
function getExtension($str)
{
    //Function for get extension of upload file array
}

$valid_img_formats = array("jpg", "png", "gif", "bmp","jpeg");
$valid_vid_formats = array("avi", "mp4", "flv", "vob");

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") 
{
  count=0
  foreach ($_FILES['file']['name'] as $name => $value)
  {  
   ...
   $ext = strtolower($ext);
   if(in_array($ext,$valid_img_formats))
    {
       if ( count( $_FILES['file']['name'] ) == $count ) 
             {
               //image moving to filesystem and showing response using database   
             }  
    }
    elseif(in_array($ext,$valid_vid_formats ))
    {
       if ( count( $_FILES['file']['name'] ) == $count ) 
             {
               //video moving to filesystem and showing response using database   
             }   
    }   
    else
    {
      echo "invalid file";
    }
  } 
} 
?>
 

Я могу получить количество файлов изображений ($ img_count_sum ) в массиве загрузки, используя приведенный ниже код.Я не знаю, как я могу это использовать и имеет ли это какой-либо смысл?

 $upload_array = $_FILES['file']['name'];    
$img_ext = implode('.', $upload_array);
$img_count_jpg = substr_count($img_ext, 'jpg');
$img_count_jpeg = substr_count($img_ext, 'jpeg');
$img_count_png = substr_count($img_ext, 'png');
$img_count_bmp = substr_count($img_ext, 'bmp');
$img_count_gif = substr_count($img_ext, 'gif');
$img_count_sum_array = array($img_count_jpg,$img_count_jpeg,$img_count_png,$img_count_bmp,$img_count_gif);
$img_count_sum = array_sum($img_count_sum_array);
 

Комментарии:

1. Я думаю, что HTTP-ответ может быть выполнен только один раз на запрос-CMIIW. Вместо этого используйте параллельный AJAX-запрос 🙂

2. Google PHP output buffering

3. @ wlz Спасибо за ваш ответ .. 🙂

4. @Hanky Да, я читал об ob_start() и ob_flush() . Не могли бы вы показать мне, как это использовать? Спасибо…