File Uploader - PNixx/Boot GitHub Wiki

Основная настройка загрузчика

Позволяет быстро загружать файлы в момент сохранения данных в БД. Для настройки достаточно выполнить несколько шагов:

  • Создаем файл загрузчика в директории проекта uploader/image.php с таким содержимым:
class imageUploader extends Boot_Uploader_Abstract {

}
  • Далее в нашей модели Model_Images пропишем:
/**
 * Подключение класса загрузки
 * [
 *  column => class name
 * ]
 * @var array
 */
protected static $mount_uploader = [
	'file' => 'imageUploader'
];

Где file - это имя колонки в БД, в котором будет храниться имя сохраненного файла, а imageUploader - имя созданного класса загрузчика.

Обработка изображений

Для загрузки и обработки изображений, потребуется библиотека из composer - "intervention/image": "~2.1". Основная настройка Composer.

Для создания различных версий размера, необходимо добавить в класс imageUploader значения следующей переменной:

/**
 * Версии файлов
 * [
 *  "version_name" => ["resize_to_fit", [100,100]]
 * ]
 * Accept processes: resize_to_fill, resize_to_fit, resize
 * @require "intervention/image": "~2.1"
 * @var array
 */
protected $version = [
	'thumb' => ["resize_to_fill", [200,200]],
	'preview' => ["resize_to_fill", [300,200]],
];

Форма создания / сохранения

<? $f = new Boot_Form_Lib("images", $image, array("method" => "post")) ?>
	<div><?= $f->input('file', ['as' => 'file', 'label' => 'Выберите файл для загрузки']) ?></div>
	<?= $f->submit('Сохранить', ['class' => 'btn']) ?>
<? $f->end() ?>

Использование в шаблонах

После всех настроек в html шаблоне можно получить полную ссылку на изображение любой версии:

<img src="<?= $image->file->url('preview') ?>"> - созданная preview версия
<img src="<?= $image->file->url() ?>"> - оригинальная версия файла
⚠️ **GitHub.com Fallback** ⚠️