$maxSize) { $uploadStatus = 'Файл слишком большой! Максимальный размер: ' . ($maxSize / 1024 / 1024) . 'MB'; } else { $targetPath = $uploadDir . $fileName; // Уникализация имени, если файл существует $counter = 1; while (file_exists($targetPath)) { $targetPath = $uploadDir . pathinfo($fileName, PATHINFO_FILENAME) . '_' . $counter . '.' . $fileExt; $counter++; } if (move_uploaded_file($file['tmp_name'], $targetPath)) { $uploadStatus = 'Файл успешно загружен!'; $isSuccess = true; } else { $uploadStatus = 'Не удалось переместить файл!'; } } } } // Формирование списка видео из папки uploads/ $videos = []; if (is_dir($uploadDir)) { $files = scandir($uploadDir); $id = 1; foreach ($files as $file) { if ($file === '.' || $file === '..') continue; // Пропускаем . и .. $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if (in_array($ext, $allowedTypes)) { $videos[] = [ 'id' => $id++, 'title' => pathinfo($file, PATHINFO_FILENAME), // Название из имени файла 'category' => $_POST['category'] ?? 'all', // Категория из формы (по умолчанию 'all') 'duration' => '00:00', // Можно добавить получение длительности через FFmpeg 'views' => '0', // Можно добавить счетчик просмотров 'uploadDate' => 'Недавно', 'description' => 'Описание отсутствует', // Можно добавить поле при загрузке 'thumbnail' => 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="300" height="180" viewBox="0 0 300 180"%3E%3Crect width="300" height="180" fill="%23333"/%3E%3Ctext x="150" y="90" text-anchor="middle" dy="0.3em" font-family="Arial" font-size="16" fill="white"%3EVideo%3C/text%3E%3C/svg%3E', 'videoUrl' => $uploadDir . $file, 'fileExt' => $ext // Для динамического type в модале ]; } } } ?>