A free and open-source book on ZF3 for beginners


10.4. Валидация выгруженных на сервер файлов

Выгруженные файлы нужно проверить на корректность, как и любые другие данные форм. Например, вам нужно проверить, что:

Для подобных проверок ZF3 предоставляет большое количество полезных валидаторов файлов (перечислены в таблице 10.1). Эти классы валидаторов принадлежат компоненту Zend\Validator и "живут" в пространстве имен Zend\Validator\File.

Таблица 10.1. Стандартные валидаторы файлов
Имя класса Псевдоним Описание
Count FileCount Проверяет, находится ли количество файлов в заданном диапазоне (min, max).
WordCount FileWordCount Подсчитывает количество слов в файле и проверяет, лежит ли оно в заданном диапазоне.
Upload FileUpload Осуществляет проверки безопасности для гарантии того, что все файлы были выгружены на сервер через HTTP-запрос методом POST и не было ошибок выгрузки.
UploadFile FileUploadFile Осуществляет проверки безопасности для гарантии того, что файл был выгружен на сервер через HTTP-запрос методом POST и не было ошибок выгрузки.
Size FileSize Проверяет, лежит ли размер файла в заданном диапазоне.
FilesSize FileFilesSize Проверяет, что суммарный размер всех файлов лежит в заданном диапазоне.
Extension FileExtension Проверяет, что расширение файла принадлежит списку допустимых расширений.
ExcludeExtension FileExcludeExtension Проверяет, что расширение файла НЕ принадлежит набору расширений.
MimeType FileMimeType Проверяет, что MIME-тип принадлежит списку допустимых MIME-типов.
ExcludeMimeType FileExcludeMimeType Проверяет, что MIME-тип файла НЕ принадлежит списку MIME-типов.
IsImage FileIsImage Проверяет, что файл является изображением (JPEG, PNG, GIF и т.д.)
ImageSize FileImageSize Проверяет, что размерность файла изображения лежит в заданном диапазоне.
Exists FileExists Проверка на то, что файл существует на диске.
NotExists FileNotExists Проверка на то, что файл не существует на диске.
IsCompressed FileIsCompressed Проверяет, что файл является архивом (ZIP, TAR, и т.д.)
Hash FileHash Проверяет, что содержимое файла соответствует заданному(-ым) хэшу(-ам).
Crc32 FileCrc32 Проверяет, что содержимое файла имеет заданную контрольную сумму CRC32.
Sha1 FileSha1 Проверяет, что содержимое файла имеет заданный SHA1-хэш.
Md5 FileMd5 Проверяет, что содержимое файла имеет заданный MD5-хэш.

Как видите из таблицы, валидаторы можно приблизительно разделить на следующие группы:

42) Хэш файла используется для проверки целостности данных файла (например, для гарантии того, что данные файла не были повреждены). Существует несколько хэш-алгоритмов (MD5, SHA-1, CRC32 и др.)

Обратите внимание, что поскольку валидаторы файлов "живут" в пространстве имен Zend\Validator\File, их псевдонимы (которые вы используете при создании валидатора с помощью фабрики) начинаются с префикса File. Например, у валидатора IsImage псевдоним FileIsImage.

Мы покажем, как использовать некоторые из этих валидаторов файлов в примере галереи изображений Image Gallery позже в этой главе.


Top