Link in progress
Обо мне
Ограничение MIME типа файлов. Уроки PHP

Ограничение MIME типа файловСегодня мы узнаем, как сделать проверку загружаемых файлов, как узнать из размер и при необходимости установить максимальное или минимальное значение загружаемого файла.
План:
1. Как узнать тип загружаемого файла?
2. Установка минимального и максимального размера файла.

1. Как узнать тип загружаемого файла?

При создании WEB-приложений очень часто нам нужно получать файлы от пользователей. В нашем случае – это картинка спортсмена. Нам мини сайт уже умеет обрабатывать файлы. Сегодня нашей задачей будет ограничить типы файлов загружающихся на сервер. Нам нужны только фото, а не документы или видео. В этом нам поможет суперглобальная переменная $_FILES:

1
$photoType = $_FILES['photo']['type'];

Теперь в переменной $photoSize будет сохраняться MIME тип загружаемого файла. Теперь укажем типы файлом, которые нам нужны: jpeg, png и gif. А теперь сделаем проверку на типы файлов:

1
if ( ($photoType == 'image/jpeg') || ($photoType == 'image/gif') || ($photoType == 'image/png')

В этом коде мы указываем, если файл типа jpeg или png или gif – тогда загружаем файл.

2. Установка минимального и максимального размера файла.

Мало ограничить тип файла, еще нужно ограничить его размер. Для этого у нас есть константа MAX_file_size, которую мы используем в скрытом поле HTML формы. Теперь мы еще и проверим размер файла при помощи PHP:

1
2
$photoSize = $_FILES['photo']['size'];  //записываем размер файла в переменную (в байтах)
if ( ($photoSize > 0) && ($photoSize <= MAX_file_size) ) // проверяем, если ли данные в присланном файле и не меньше или равно максимальному размеру.

Вот так будет выглядеть весь код:

1
2
3
4
5
$photoSize = $_FILES['photo']['size'];
$photoType = $_FILES['photo']['type'];

if (!empty($name) && !empty($weight) && !empty($photoName)) {
    if ( ($photoType == 'image/jpeg') || ($photoType == 'image/gif') || ($photoType == 'image/png') && ($photoSize > 0) && ($photoSize <= MAX_file_size) ){ …

Так как мы делаем наш сайт лучше и безопаснее, тогда не забудем проверить на ошибку загрузки файла:

1
if ($_FILES['photo']['error']==0) {…

А также попробуем удалять временные файлы, если по каким-то причинам кандидат не был добавлен в рейтинг:

1
@unlink($_FILES['photo']['tmp_name']);

Урок получился беглым и если кому не понятно, куда что нужно помещать – скачайте файлы урока. На этом всё, до новых встреч, ProIN!

Скачать файлы урока:
Files

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Max quality, min price, min time expenditure
Send me a message to: work@glogla.net
Portfolio