Главная | Документаци для разраотчиков | Рекомендованное расширения для загрузки файлов

Рекомендованное расширения для загрузки файлов

Для загрузки файлов на сервер рекомендуется использовать несколько расширений:

  • kartik-v/yii2-widget-fileinput - мощный инструмент, позволяющий достаточно быстро подключить к форме поле для загрузки одного или нескольких изображений. Доступна возможность осуществлять загрузку по ajax. Документация - http://demos.krajee.com/widget-details/fileinput
  • mohorev/yii2-upload-behavior - набор поведений для ActiveRecord, позволяющий достаточно быстро настроить загрузку файлов и изображений на сервер. Есть возможность генерации миниатюр для изображений. Документация - https://github.com/mohorev/yii2-upload-behavior

Обеспечения безопасности загрузки и хранения файлов

При загрузке файлов в первую очередь проверяйте расширение файла, а не его mimeType.

При сохранении файла на сервер в целях безопасности рекомендуется генерировать новое имя, в качестве которого стоит использовать хэш, а в качестве разрешения использовать расширение исходного файла.

При сохранении файлов на сервер их стоит распределять по папкам, принадлежащим отдельным сущностям, а также желательно распределять их еще на один уровень вложенности, который будет равен ID элемента сущности. Например, изображения страниц модуля Контент хранится в следующей директории:

@staticPath/content/post/{id}/ где {id} - ID записи в БД.

Проследить, чтобы у всех директорий, в которых хранятся файлы, была выключена индексация в .htaccess.

Если в проекте предусмотрен прямой доступ к изображениям, которые могут попасть в индекс Поисковой системы, то следует предусмотреть исключения папки в файле robots.txt. Данный момент рекомендуется уточнить у Заказчика.