Задать вопрос

Как реализовать прекращение цикла foreach при загрузке изображений?

Написал такой исходник
<?php
	session_start();
	require_once 'app_config.php';
	require_once 'database_connect.php';
	$user_id = $_SESSION['user_id'];
	$path_error="album.php?error_msg=";
	$upload_dir =  "/Applications/MAMP/htdocs" . SITE_ROOT . "uploads/";
	foreach ($_FILES['pic']['error'] as $key => $error) {
		if ($error == UPLOAD_ERR_OK) {
	        is_uploaded_file($_FILES['pic']['tmp_name'][$key]) or error($path_error,"запрещенный запрос");
			getimagesize($_FILES['pic']['tmp_name'][$key]) or error($path_error,"неверный формат изображения");
			$now = time();
				while (file_exists($upload_filename = $upload_dir . $now . '-' . $_FILES['pic']['name'][$key])){
					$now++;
				}
			move_uploaded_file($_FILES['pic']['tmp_name'][$key], $upload_filename) or error($path_error,"ошибка загрузки");
	    	$insert_sql = "INSERT INTO album (author_photo_id, path_photo) VALUES ('{$user_id}', '{$upload_filename}');";
			mysql_query($insert_sql)  or error($path_error,"ошибка сохранения");
	    }
	    else {
	    	$php_errors = array(1 => 'Превышен макс. размер файла, указанный в php.ini',
                   2 => 'Превышен макс. размер файла(1Mb)',
                   3 => 'Была отправлена только часть файла',
                   4 => 'Файл для отправки не был выбран.');
	    	error($path_error,$php_errors[$_FILES['pic']['error'][$key]]);
	    }
	}
	header("Location: album.php?succes_msg=фото загружены");
?>


Не могу понять, почему, если загружается несколько файлов и в одном с них ошибка, не грузятся остальные. Для разъяснения функции error прилагается
function error($path_error,$error){
	header("Location:" . $path_error. "" .$error."");
	exit;
}
  • Вопрос задан
  • 2677 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
@v_prom
может потому что exit?
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
При вызове функции error происходит выход (exit) из цикла и из программы вообще.
Ответ написан
Комментировать
@ShVad
Собирайте все ошибки в массив, потом выводите их.
Ответ написан
Комментировать
Romastr
@Romastr Автор вопроса
ну это я и сам понимаю. а вот пример как мне создать массив и записывать в него значение типа имя файла и ключ ошибки. что бы потом сделать вывод что загрузилось что нет и по какой причине
Ответ написан
hadra
@hadra
проверку делайте... или задайте условие
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект