Zend Framework 3 предоставляет несколько фильтров, предназначенных для "преобразования" полей файла. Классы
этих фильтров (перечислены в таблице 10.2) принадлежат компоненту Zend\Filter
и "живут" в пространтсве имен Zend\Filter\File
.
Имя класса | Псевдоним | Описание |
---|---|---|
Rename |
FileRename |
Переименовывает/перемещает произвольный файл. |
RenameUpload |
FileRenameUpload |
Переименовывает/перемещает выгруженный файл с проверками безопасности. |
Encrypt |
FileEncrypt |
Зашифровывает заданный файл и сохраняет содержимое зашифрованного файла. |
Decrypt |
FileDecrypt |
Дешифрует заданный файл и сохраняет содержимое дешифрованного файла. |
LowerCase |
FileLowerCase |
Переводит содержимое файла в нижний регистр. |
UpperCase |
FileUpperCase |
Переводит содержимое файла в верхний регистр. |
Как видите из таблицы, валидаторы можно разделить на следующие группы:
Обратите внимание, что поскольку фильтры файлов "живут" в пространстве имен
Zend\Filter\File
, их псевдонимы (которые вы используете при создании фильтра с помощью фабрики) начинаются с префиксаFile
. Например, у фильтраRenameUpload
псевдонимFileRenameUpload
.
Фильтры Encrypt
and Decrypt
позволяют применять к выгруженным на сервер файлам различные алгоритмы
шифрования/дешифрования (выбранный алгоритм можно добавить, указав определенный адаптер). Фильтры LowerCase
и
UpperCase
используются для перевода текста соответственно в нижний и верхний регистры 43.
43) По мнению автора, описанные выше четыре фильтра не особо полезны при работе с выгруженными на сервер файлами, так как необходимость шифрования выгруженного файла или его перевода в нижний (или верхний) регистр возникает довольно редко.
Фильтр Rename
позволяет переименовать и/или переместить произвольный файл (не только выгруженные на сервер файлы).
Он внутренне использует PHP-функцию rename()
, поэтому, в целом, использовать этот фильтр с выгруженными файлами
не рекомендуется из соображений безопасности.
Фильтр RenameUpload
выглядит гораздо полезнее остальных, так как он позволяет инкапсулировать вызов
функции move_uploaded_file()
и переместить/переименовать файл из временного хранилища в его постоянный
каталог. Мы покажем, как использовать фильтр RenameUpload
в примере галереи изображений Image Gallery
позже в этой главе.