Страница 1 из 4
yii2-fileapi from vova07
Добавлено: 2015.01.16, 13:24
phpstarter
Скачал данный виджет, поставил, надо будет покопаться еще в настройках, пока не все разобрал...
Вопрос в следующем, как я понял в виджете есть опция сделать crop автоматом.
Однако можно ли после того как выбран image для закачки, какнибудь втиснуть туда код какогонить окошка в котором можно былобы показать превью картинки и сделать кроп с помощью какогонить стороннего скрипта ? Тоесть я хочу предоставить юзеру самому выбрать ту область картинки которая пойдет под кроп.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.16, 13:42
vismut
По проблеме не подскажу, но советую в целом про файлапи прочитать, попытаться разобраться, чтоб понять как он работает.
Это довольно сложная штука, и скорее всего виджет имеет жеские рамки гибкости
Re: yii2-fileapi from vova07
Добавлено: 2015.01.16, 13:46
TranceSmile
я ставил по инструкции с гит. То он так работает как Вам нужно.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.18, 22:48
vova07
Исправил демо сайт. Можете посмотреть как работает кроп на странице авторизации:
http://yii2-start.find-freelancer.pro/signup/ все вроде именно так как вам нужно.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.19, 16:23
phpstarter
О! То что доктор прописал!
А можно пример кода как такогоже добиться ? на джит хабе вроде не нашел.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.19, 17:12
vova07
Реальный код что есть в демо примере, можете посмотреть тут:
https://github.com/vova07/yii2-start-us ... up.php#L47
По сути там 3 строки нужно указать.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.19, 17:56
phpstarter
Большое спасибо, Crop заработал как положено!
А можно подсказку как добиться того чтобы закачивалось сразу несколько файлов?
Файл оригинал, кропнутый файл, и скажем еще авто кроп кропнутого файла с заранее указанными размерами ?
Тоесть закачиваем полюбому файл оригинал котрый был допустим 1000x1000.
Кроп юзеру мы задали 100x100.
Но после того как он его сделает и создаться файл 100x100, с него еще берем отдельно 50x50 картинку.
И еще вопрос. Закачавшись на страничке появляется иконка рисунка, и если провести поверх мышкой то выходит функция удаления рисунка, нажав кнопку рисунок удаляется со странички, однако на диске он так и остается, не удалившись. По идее он ведь должен стираться или я чтото неправильно понял ?
Re: yii2-fileapi from vova07
Добавлено: 2015.01.20, 01:00
vova07
Для такого поведения, вам нужно будет дописать самостоятельно логику нарезки. Понадобится добавить обработчик для создания автоматической картинки с размером 50Х50. И включить отправку оригинальной картинки:
https://github.com/RubaXa/jquery.fileap ... nalboolean
Но в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
Касательно изображения: как я понял речь идет об удалении картинки до её сохранения. Возможно это нужно доработать, но логика подразумевала, что временная папка будет очищаться по крону, и дополнительных заморочек с этим не предполагалось.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.21, 11:46
phpstarter
Попробовал отправку оригинальной картинки но кажется чтото делаю неправильно.
Код: Выделить всё
FileAPI::className(),
[
'settings' => [
'url' => ['/users/fileapi-upload']
],
'crop' => true,
'cropResizeWidth' => 100,
'cropResizeHeight' => 100,
'imageOriginal' => TRUE
]
Ругается на
Код: Выделить всё
Setting unknown property: vova07\fileapi\Widget::imageOriginal
Re: yii2-fileapi from vova07
Добавлено: 2015.01.21, 15:18
vova07
Это нужно в "settings" массиве прописать, так как это свойство именно плагина, а не виджета.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.22, 12:54
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.
Однако оригинальная картинка, так и не сохраняется нигде.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.22, 13:37
vova07
Я по этому поводу писал выше, и предупреждал:
в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
моё стандартное поведение из виджета, не адаптировано для этой задачи, по этому вам нужно заменить её на свою. Тоже самое и касательно стандартного экшена.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.22, 13:48
phpstarter
Тоесть опция
ничего не дает ? Под нее надо будет писать свой код, так ?
Re: yii2-fileapi from vova07
Добавлено: 2015.01.22, 18:15
vova07
По сути да.
Она просто указывает плагину, чтоб он на сервер отправлял не только кроп что выбрал пользователь, но и сам оригинал. А вот уже дальнейшие действия, вы сами должны написать, и решить.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 07:16
phpstarter
Ок спасибо, а можно узнать в каком месте происходит обработка той превьюшки? тоесть сам код закачки превьюшки, чтоб я на его примере прилепил туда все то остальное что мне нужно.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 12:36
vova07
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 12:55
phpstarter
спасибо, буду разбираться.
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 13:51
phpstarter
Еще вопросик.
Вот например в виджете нашел место
Код: Выделить всё
if ($this->crop === true) {
$this->settings['autoUpload'] = false;
}
Если перекинуть в true то закачивается целая картинка без кропа.
Вопрос в другом. Побегал по файлам и нигде не нашел места где проверяется значение этого самого autoUpload.
Можете ткнуть пальцем ?
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 18:12
vova07
Данный параметр относится к Javascript плагину. Хочу напомнить что мой виджет это обертка над этим плагином:
https://github.com/RubaXa/jquery.fileapi по этому все что в коде, это чисто обработка настроек виджета, и передача их в правильном виде в сам плагин. Дальше уже все, делается на основе плагина JS.
Советую кстати ознакомится с документацией этого инструмента, там и найдете место где идет проверка на "autoUpload"
Re: yii2-fileapi from vova07
Добавлено: 2015.01.23, 19:27
phpstarter
тоесть основные файлы значит лежат в папке vendor/rubaxa/fileapi? я правильно понял ?