PHP code example of oleg-chulakov-studio / yii2-filestorage
1. Go to this page and download the library: Download oleg-chulakov-studio/yii2-filestorage library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
oleg-chulakov-studio / yii2-filestorage example snippets
'fileStorage' => [
'class' => \chulakov\filestorage\FileStorage::class,
'storageBaseUrl' => false, // Базовый url
'storagePath' => '@webroot', // Путь сохранения
'storageDir' => 'uploaded', // Папка с сохраняемыми файлами
'fileMode' => 0755, // Уровень доступа к сохраняемым файлам
'storagePattern' => '{group}/{id}', // Корневой шаблон генерации пути сохранения файлов
],
'imageComponent' => [
'class' => \chulakov\filestorage\ImageComponent::class,
'driver' => 'gd', // Базовые драйвера: gd и imagick
]
public function behaviors()
{
return [
[
'class' => \chulakov\filestorage\behaviors\FileUploadBehavior::class, // Поведение
'attribute' => 'image', // Атрибут модели
'group' => 'photos', // Сохраняемая группа
'type' => 'detail', // Тип файла в группе объектов
'fileStorage' => 'fileStorage', // Компонент хранения файлов
'repository' => \chulakov\filestorage\uploaders\UploadedFile::class, // Репозиторий
],
];
}
public function behaviors()
{
return [
[
'class' => \chulakov\filestorage\behaviors\FileUploadBehavior::class, // подключаемое поведение
'attribute' => 'image', // атрибут, куда будет помещен файл
'group' => 'photos', // группа сохраняемого изображения
'type' => 'detail', // тип сохраняемого изображения в группе
'fileStorage' => 'fileStorage', // компонент хранения
'repository' => \chulakov\filestorage\uploaders\UploadedFile::class, // выбранный загрузчик
'repositoryOptions' => [ // опции репозитория
'listeners' => [ // список слушателей
[
'class' => ThumbsManager::class, // Класс слушателя
'width' => 640, // Ширина
'height' => 480, // Высота
'encode' => 'jpg', // Расширение
'quality' => 100, // Качество в процентах
'watermarkPath' => '/path/to/image/watermark.png', // Наложенная водяная метка
'watermarkPosition' => Position::CENTER, // Позиция водяной метки
'imageComponent' => 'imageComponent', // Имя компонента для работы изображениями
],
[
'class' => ImageManager::class, // Класс слушателя
'width' => 640, // Ширина
'height' => 480, // Высота
'encode' => 'jpg', // Расширение
'quality' => 100, // Качество в процентах
'watermarkPath' => '/path/to/image/watermark.png', // Наложенная водяная метка
'watermarkPosition' => Position::CENTER, // Позиция водяной метки
'imageComponent' => 'imageComponent', // Имя компонента для работы изображениями
'accessRole' => 'role_example', // Роль разрешенная для работы с изображениями
]
],
]
],
];
}
/**
* Загрузка изображения через ajax запрос
*/
public function actionIndex()
{
$form = new FileForm(); // Инициализация формы
$request = \Yii::$app->request;
if ($request->isPost) {
$form->load(\Yii::$app->request->post(), ''); // Загрузка параметров
if ($form->validate() && $form->upload()) { // Валидация и загрузка файлов
return json_encode(['success' => true]); // Выдача сообщения о успешной загрузки
}
}
throw new NotUploadFileException('Файл не был загружен.');
}