yii2-fileapi from vova07

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

yii2-fileapi from vova07

Сообщение phpstarter »

Скачал данный виджет, поставил, надо будет покопаться еще в настройках, пока не все разобрал...
Вопрос в следующем, как я понял в виджете есть опция сделать crop автоматом.
Однако можно ли после того как выбран image для закачки, какнибудь втиснуть туда код какогонить окошка в котором можно былобы показать превью картинки и сделать кроп с помощью какогонить стороннего скрипта ? Тоесть я хочу предоставить юзеру самому выбрать ту область картинки которая пойдет под кроп.
vismut
Сообщения: 64
Зарегистрирован: 2014.10.01, 16:46

Re: yii2-fileapi from vova07

Сообщение vismut »

По проблеме не подскажу, но советую в целом про файлапи прочитать, попытаться разобраться, чтоб понять как он работает.
Это довольно сложная штука, и скорее всего виджет имеет жеские рамки гибкости
Аватара пользователя
TranceSmile
Сообщения: 562
Зарегистрирован: 2011.06.27, 19:04
Откуда: Украина
Контактная информация:

Re: yii2-fileapi from vova07

Сообщение TranceSmile »

я ставил по инструкции с гит. То он так работает как Вам нужно.
Изображение
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Исправил демо сайт. Можете посмотреть как работает кроп на странице авторизации: http://yii2-start.find-freelancer.pro/signup/ все вроде именно так как вам нужно.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

О! То что доктор прописал! :) А можно пример кода как такогоже добиться ? на джит хабе вроде не нашел.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Реальный код что есть в демо примере, можете посмотреть тут: https://github.com/vova07/yii2-start-us ... up.php#L47
По сути там 3 строки нужно указать.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Большое спасибо, Crop заработал как положено!
А можно подсказку как добиться того чтобы закачивалось сразу несколько файлов?
Файл оригинал, кропнутый файл, и скажем еще авто кроп кропнутого файла с заранее указанными размерами ?

Тоесть закачиваем полюбому файл оригинал котрый был допустим 1000x1000.
Кроп юзеру мы задали 100x100.
Но после того как он его сделает и создаться файл 100x100, с него еще берем отдельно 50x50 картинку.

И еще вопрос. Закачавшись на страничке появляется иконка рисунка, и если провести поверх мышкой то выходит функция удаления рисунка, нажав кнопку рисунок удаляется со странички, однако на диске он так и остается, не удалившись. По идее он ведь должен стираться или я чтото неправильно понял ?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Для такого поведения, вам нужно будет дописать самостоятельно логику нарезки. Понадобится добавить обработчик для создания автоматической картинки с размером 50Х50. И включить отправку оригинальной картинки: https://github.com/RubaXa/jquery.fileap ... nalboolean
Но в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.

Касательно изображения: как я понял речь идет об удалении картинки до её сохранения. Возможно это нужно доработать, но логика подразумевала, что временная папка будет очищаться по крону, и дополнительных заморочек с этим не предполагалось.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Попробовал отправку оригинальной картинки но кажется чтото делаю неправильно.

Код: Выделить всё

FileAPI::className(),
        [
            'settings' => [
                'url' => ['/users/fileapi-upload']
            ],
            'crop' => true,
            'cropResizeWidth' => 100,
            'cropResizeHeight' => 100,
            'imageOriginal' => TRUE
        ] 
Ругается на

Код: Выделить всё

Setting unknown property: vova07\fileapi\Widget::imageOriginal
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Это нужно в "settings" массиве прописать, так как это свойство именно плагина, а не виджета.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Добавил в view

Код: Выделить всё

echo $form->field($model, 'preview_url')->widget(
        FileAPI::className(),
        [
            'settings' => [
                'url' => ['/users/fileapi-upload'],
                'imageOriginal' => true
            ],
            'crop' => true,
            'cropResizeWidth' => 100,
            'cropResizeHeight' => 100,

        ]
    );
В модели прописано

Код: Выделить всё

 public function behaviors()
    {
        return [
            'uploadBehavior' => [
                'class' => UploadBehavior::className(),
                'attributes' => [
                    'preview_url' => [
                        'path' => 'D:\Work\XAMPP\htdocs\a1.com\web\files\test2',
                        'tempPath' => 'D:\Work\XAMPP\htdocs\a1.com\web\files\test1',
                        'url' => '/a1.com/web/files'
                    ],
                    'image_url' => [
                        'path' => 'D:\Work\XAMPP\htdocs\a1.com\web\files\test4',
                        'tempPath' => 'D:\Work\XAMPP\htdocs\a1.com\web\files\test3',
                        'url' => '/a1.com/web/files'
                    ]
                ]
            ]
        ];
    }
В контроллере

Код: Выделить всё

    public function actions()
    {
        return [
            'fileapi-upload' => [
                'class' => FileAPIUpload::className(),
                'path' => 'D:\Work\XAMPP\htdocs\a1.com\web\files\test1'
            ]
        ];
    }
Как результат , в момент заполнения формы превьюшка подкачивается в test1.
затем если отправить форму test1 очищается, а ее содержимое переходит в test2.

Однако оригинальная картинка, так и не сохраняется нигде.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Я по этому поводу писал выше, и предупреждал:
в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
моё стандартное поведение из виджета, не адаптировано для этой задачи, по этому вам нужно заменить её на свою. Тоже самое и касательно стандартного экшена.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Тоесть опция

Код: Выделить всё

'imageOriginal' => true
ничего не дает ? Под нее надо будет писать свой код, так ?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

По сути да.
Она просто указывает плагину, чтоб он на сервер отправлял не только кроп что выбрал пользователь, но и сам оригинал. А вот уже дальнейшие действия, вы сами должны написать, и решить.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Ок спасибо, а можно узнать в каком месте происходит обработка той превьюшки? тоесть сам код закачки превьюшки, чтоб я на его примере прилепил туда все то остальное что мне нужно.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Кроп и обработка начинается вот здесь: https://github.com/vova07/yii2-fileapi- ... t.php#L391
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

спасибо, буду разбираться.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

Еще вопросик.

Вот например в виджете нашел место

Код: Выделить всё

if ($this->crop === true) {
            $this->settings['autoUpload'] = false;
        } 
Если перекинуть в true то закачивается целая картинка без кропа.
Вопрос в другом. Побегал по файлам и нигде не нашел места где проверяется значение этого самого autoUpload.
Можете ткнуть пальцем ? :)
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: yii2-fileapi from vova07

Сообщение vova07 »

Данный параметр относится к Javascript плагину. Хочу напомнить что мой виджет это обертка над этим плагином: https://github.com/RubaXa/jquery.fileapi по этому все что в коде, это чисто обработка настроек виджета, и передача их в правильном виде в сам плагин. Дальше уже все, делается на основе плагина JS.
Советую кстати ознакомится с документацией этого инструмента, там и найдете место где идет проверка на "autoUpload"
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: yii2-fileapi from vova07

Сообщение phpstarter »

тоесть основные файлы значит лежат в папке vendor/rubaxa/fileapi? я правильно понял ?
Ответить