@BuBux

Проверка загрузки изображения php?

<input type="file" class="filestyle" data-input="false" name="img[]" multiple>

// Проверим, загружалось ли через форму изображение
if (isset($_FILES)) {
    $mass = array();
    $file = $_FILES['img']['tmp_name'];

    foreach ($file as $k => $value) {
        // Если загружалось, переместим их в нужную папку, дадим новое имя
	$new_name = date('YmdHis',time()).mt_rand();
	$full_name = $new_name . '.jpg';
	move_uploaded_file($value, $_SERVER['DOCUMENT_ROOT'] . "/upload/images/tasks/" . $full_name);
	$name = '/tasks/' . $full_name;
	$mass[$k] = array();
	$mass[$k]['full'] = $name;
        $crop = Task::cropImage($_SERVER['DOCUMENT_ROOT'] . "/upload/images" . $name, $_SERVER['DOCUMENT_ROOT'] . "/upload/images/tasks/" . $new_name . "_cropped.jpg", 300, 300);
	if ($crop) {
            $name_mini = '/tasks/' . $new_name . "_cropped.jpg";
	    $mass[$k]['mini'] = $name_mini;
	} else {
                $msg_title = "Ошибка";
                $msg_cont = "Формат 'мини' для изображения не добавлен";
        }
}
	            	$options['images'] = json_encode($mass);
}

Есть поле, где пользователь может прикрепить скрины. Вариант с добавлением нескольких фотографий я рассмотрел, работает. Но как проверить на пустоту данное поле?
Условие (!isset($_FILES)) не работает. Т.к. при отправке формы без прикрепленных скринов print_r($_FILES) выдаёт Array ( [img] => Array ( [name] => Array ( [0] => ) [type] => Array ( [0] => ) [tmp_name] => Array ( [0] => ) [error] => Array ( [0] => 4 ) [size] => Array ( [0] => 0 ) ) )
  • Вопрос задан
  • 996 просмотров
Решения вопроса 1
Tomio
@Tomio
backend developer (python, php)
Вам достаточно проверить первый файл. Если он не пустой, то уже начать обрабатывать массив $_FILES:

<?php
if ($_FILES['img']['tmp_name'][0]){
    // ....
}
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы