#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() . Не могли бы вы показать мне, как это использовать? Спасибо…