Для загрузки аватарки в PHP можно использовать следующий компактный код:
if(isset($_FILES['avatar'])){ $errors = array(); $file_name = $_FILES['avatar']['name']; $file_size = $_FILES['avatar']['size']; $file_tmp = $_FILES['avatar']['tmp_name']; $file_type = $_FILES['avatar']['type']; $file_ext = strtolower(end(explode('.',$_FILES['avatar']['name']))); $extensions = array("jpeg","jpg","png"); if(in_array($file_ext,$extensions) === false){ $errors[] = "Расширение файла запрещено, выберите jpeg, jpg или png."; } if($file_size > 2097152){ $errors[] = 'Размер файла не должен превышать 2МБ.'; } if(empty($errors) == true){ move_uploaded_file($file_tmp,"uploads/".$file_name); echo "Файл успешно загружен."; }else{ print_r($errors); } }
Давайте разберем этот код поэтапно:
1. Проверяем, было ли что-то загружено в поле "avatar" формы с помощью функции isset($_FILES['avatar']). Если была загрузка, то выполняем код, в противном случае пропускаем его.
2. Создаем массив $errors для хранения возможных ошибок при загрузке файла.
3. Получаем различные свойства файла - его имя, размер, временное имя и тип.
4. Получаем расширение файла, приводим его к нижнему регистру и сохраняем в переменной $file_ext.
5. Создаем массив разрешенных расширений файлов - в данном случае "jpeg", "jpg" и "png".
6. Проверяем, соответствует ли расширение файла разрешенным расширениям. Если нет, добавляем в массив $errors сообщение об ошибке.
7. Проверяем размер файла. Если он превышает 2МБ, добавляем в массив $errors сообщение об ошибке.
8. Если в массиве $errors нет ошибок (проверяем его на пустоту с помощью функции empty()), то перемещаем загруженный файл из временной директории в указанную директорию "uploads" с сохранением его оригинального имени.
9. Если в массиве $errors есть ошибки, выводим их с помощью функции print_r().