Файловый менеджер для выбора и загрузки файлов
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Файловый менеджер для выбора и загрузки файлов
Здравствуйте. Реализовал загрузку файлов стандартным методом приведенным в документации, либо одним из дополнений. В принципе устраивает, но иногда надо не загружать изображение а выбрать из уже загруженных на сервер. Такая себе кнопка, на которую можно повесить файловый менеджер где можно выбрать необходимое изображение из уже загруженных на сервер либо там же загрузить другое. Что скажете по этому поводу? Есть наработки или идеи как лучше сделать?
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
О спасибо, а то я уже успел продублировать сообщения вам в личку
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
Подключил, настроил.
Но что-то не так, что это значит?
Но что-то не так, что это значит?
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
конфиг в студию
и отображение
и отображение
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
Конфиг:
Вид:
Код: Выделить всё
'controllerMap' => [
'elfinder' => [
'class' => 'mihaildev\elfinder\Controller',
'access' => ['@', '?'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?']
'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands
'roots' => [
[
'baseUrl'=>'@web',
'basePath'=>'@webroot',
'path' => 'uploads',
'name' => 'bramy'
],
[
'path' => 'uploads/bramy',
'name' => ['category' => 'my','message' => 'Some Name'], // Yii::t($category, $message)
'access' => ['read' => '*', 'write' => 'UserFilesAccess'] // * - для всех, иначе проверка доступа в даааном примере все могут видет а редактировать могут пользователи только с правами UserFilesAccess
]
],
'watermark' => [
'source' => __DIR__.'/logo.png', // Path to Water mark image
'marginRight' => 5, // Margin right pixel
'marginBottom' => 5, // Margin bottom pixel
'quality' => 95, // JPEG image save quality
'transparency' => 70, // Water mark image transparency ( other than PNG )
'targetType' => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
'targetMinPixel' => 200 // Target image minimum pixel size
]
]
],
Код: Выделить всё
<?php
use mihaildev\elfinder\InputFile;
use mihaildev\elfinder\ElFinder;
use yii\web\JsExpression;
use common\models\Category;
use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use yii\widgets\ActiveForm;
use vova07\imperavi\Widget;
?>
<div class="box box-primary" style="width:500px;">
<div class="box-header with-border">
<h3 class="box-title">Додати виріб</h3>
</div>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?php $items = ArrayHelper::map(Category::find()->all(),'id','name'); ?>
<div class="box-body">
<?= $form->field($model, 'id_category')->dropDownList($items, ['prompt'=>'Виберіть категорію виробів']); ?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'description')->widget(Widget::className(), [
'settings' => [
'lang' => 'ua',
'minHeight' => 200,
'plugins' => [
'clips'
]
]
]); ?>
<?= $form->field($model, 'price') ?>
<?= $form->field($model, 'file')->widget(InputFile::className(), [
'language' => 'ru',
'controller' => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
'path' => 'bramy', // будет открыта папка из настроек контроллера с добавлением указанной под деритории
'filter' => 'image', // фильтр файлов, можно задать массив фильтров с#wiki-onlyMimes
'template' => '<div class="input-group">{input}<span class="input-group-btn">{button}</span></div>',
'options' => ['class' => 'form-control'],
'buttonOptions' => ['class' => 'btn btn-default'],
'multiple' => false // возможность выбора нескольких файлов
]);
?>
<div class="form-group">
<?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
вам нужно работать только с одной папкой?
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
Мне нужно работать только с одной папкой но иметь доступ к вложенным папкам, так как картинки фактически будут ложиться в эти вложенные разные папки в зависимости от категории товара. То есть папка uploads а в ней уже подпапки категорий. Должен иметь доступ в папку uploads и к вложенным тоже.
Не знаю еще как реализовать доступ к папке uploads и с бакенда и с фронтенда. То это уже к делу не относится.
Не знаю еще как реализовать доступ к папке uploads и с бакенда и с фронтенда. То это уже к делу не относится.
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
для начала
попробуйте работает ли у вас такие настройки
попробуйте работает ли у вас такие настройки
Код: Выделить всё
'class' => '\mihaildev\elfinder\PathController',
'root' => [
'baseUrl' => '@web/uploads',
'basePath' => '@webroot/uploads',
'access' => ['read' => '*', 'write' => '*'],
'name' => 'Папка',
]
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
Не работают у меня такие настройки. Для чистоты експеремента yii2 advanced установлен на OpenServer.
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
в логах что за ошибка?
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
2 строчки Лога Апача:
По ходу второй запрос с ошибкой 500, где копать не знаю.
Код: Выделить всё
yii2advanced.loc: 127.0.0.1 [16/Aug/2015:21:39:22 +0300] "GET /backend/web/elfinder/manager?filter=image&callback=products-file&lang=ru&path=bramy HTTP/1.1" 200 2269 "http://yii2advanced.loc/backend/web/admin/add" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
yii2advanced.loc: 127.0.0.1 [16/Aug/2015:21:39:22 +0300] "GET /backend/web/elfinder/connect?path=bramy&_csrf=dHc1NTBtLWFZRGFlflVINBAYcFxmHmwKMFphX0MVaBMcWn55ZQ4eOA%3D%3D&mimes%5B%5D=image&cmd=open&target=&init=1&tree=1&_=1439750362278 HTTP/1.1" 500 52 "http://yii2advanced.loc/backend/web/elfinder/manager?filter=image&callback=products-file&lang=ru&path=bramy" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
А вот с таким конфигом заработало, хотя немного странно лишние квадратные скобки, баг наверное или фича
Заработало и с таким конфигом
Чудеса!
Код: Выделить всё
'controllerMap' => [
'elfinder' => [
'class' => '\mihaildev\elfinder\Controller',
'roots' => [
[
'baseUrl'=>'@web/uploads',
'basePath'=>'@webroot/uploads',
'access' => ['read' => '*', 'write' => '*'],
'name' => 'uploads'
],
]
]
],
Код: Выделить всё
'controllerMap' => [
'elfinder' => [
'class' => '\mihaildev\elfinder\PathController',
'root' => [
'baseUrl'=>'@web',
'basePath'=>'@webroot',
'access' => ['read' => '*', 'write' => '*'],
'name' => 'uploads'
]
]
]
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
я же давал кофиг под PathController
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
'name' => 'uploads' это просто название в самом ел у тебя должна открываться корневая директория
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
я сделал доработку добавив такой параметр как startPath
теперь можно выбирать с какой папки начать отображение
путь startPath формируется из номера диска (@1) и пути (/test) можно номер диска не указывать ('startPath' => 'test') тогда он по умолчанию равен 1
теперь можно выбирать с какой папки начать отображение
Код: Выделить всё
<?= $form->field($model, 'file')->widget(InputFile::className(), [
'language' => 'ru',
'controller' => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
'path' => 'bramy', // будет открыта папка из настроек контроллера с добавлением указанной под деритории
'filter' => 'image', // фильтр файлов, можно задать массив фильтров с#wiki-onlyMimes
'template' => '<div class="input-group">{input}<span class="input-group-btn">{button}</span></div>',
'options' => ['class' => 'form-control'],
'buttonOptions' => ['class' => 'btn btn-default'],
'startPath' => '@1/test'
]);
?>
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
нет есть 2 контроллераrosolovsky писал(а):лишние квадратные скобки, баг наверное или фича
1) mihaildev\elfinder\Controller - расчитан на работу с несколькими дисками здесь и получились квадратные скобки из за того что там массив дисков
2) mihaildev\elfinder\PathController - расчитан на работу с одним диском
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
ещё вопрос тебе это нужно в твоём проекте
'watermark' => [
'source' => __DIR__.'/logo.png', // Path to Water mark image
'marginRight' => 5, // Margin right pixel
'marginBottom' => 5, // Margin bottom pixel
'quality' => 95, // JPEG image save quality
'transparency' => 70, // Water mark image transparency ( other than PNG )
'targetType' => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
'targetMinPixel' => 200 // Target image minimum pixel size
]
а то смотрю это из стандартного конфига
у тебя __DIR__.'/logo.png' есть?
'watermark' => [
'source' => __DIR__.'/logo.png', // Path to Water mark image
'marginRight' => 5, // Margin right pixel
'marginBottom' => 5, // Margin bottom pixel
'quality' => 95, // JPEG image save quality
'transparency' => 70, // Water mark image transparency ( other than PNG )
'targetType' => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
'targetMinPixel' => 200 // Target image minimum pixel size
]
а то смотрю это из стандартного конфига
у тебя __DIR__.'/logo.png' есть?
-
- Сообщения: 119
- Зарегистрирован: 2014.06.23, 11:44
- Откуда: Украина
Re: Файловый менеджер для выбора и загрузки файлов
Неа не надо, я уже убрал.
- mihail_dev
- Сообщения: 243
- Зарегистрирован: 2013.07.17, 00:51
- Откуда: Молдова
- Контактная информация:
Re: Файловый менеджер для выбора и загрузки файлов
и так с помощью 'startPath' => '@1/test' ты можеш указать какую папку по умолчанию открыть далее пользователь волен делать что ему захочется
далее по поводу фронт и бэк тебе просто надо правильно указать в обоих случаях
'baseUrl'=>'@web/uploads',
'basePath'=>'@webroot/uploads',
просто для фронт и бэк значения алиасов @web и @webroot разные но их можно указать и статично
и всё будет верно работать
далее по поводу фронт и бэк тебе просто надо правильно указать в обоих случаях
'baseUrl'=>'@web/uploads',
'basePath'=>'@webroot/uploads',
просто для фронт и бэк значения алиасов @web и @webroot разные но их можно указать и статично
и всё будет верно работать