yii2-fileapi from vova07
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
yii2-fileapi from vova07
Скачал данный виджет, поставил, надо будет покопаться еще в настройках, пока не все разобрал...
Вопрос в следующем, как я понял в виджете есть опция сделать crop автоматом.
Однако можно ли после того как выбран image для закачки, какнибудь втиснуть туда код какогонить окошка в котором можно былобы показать превью картинки и сделать кроп с помощью какогонить стороннего скрипта ? Тоесть я хочу предоставить юзеру самому выбрать ту область картинки которая пойдет под кроп.
Вопрос в следующем, как я понял в виджете есть опция сделать crop автоматом.
Однако можно ли после того как выбран image для закачки, какнибудь втиснуть туда код какогонить окошка в котором можно былобы показать превью картинки и сделать кроп с помощью какогонить стороннего скрипта ? Тоесть я хочу предоставить юзеру самому выбрать ту область картинки которая пойдет под кроп.
Re: yii2-fileapi from vova07
По проблеме не подскажу, но советую в целом про файлапи прочитать, попытаться разобраться, чтоб понять как он работает.
Это довольно сложная штука, и скорее всего виджет имеет жеские рамки гибкости
Это довольно сложная штука, и скорее всего виджет имеет жеские рамки гибкости
- TranceSmile
- Сообщения: 562
- Зарегистрирован: 2011.06.27, 19:04
- Откуда: Украина
- Контактная информация:
Re: yii2-fileapi from vova07
Исправил демо сайт. Можете посмотреть как работает кроп на странице авторизации: http://yii2-start.find-freelancer.pro/signup/ все вроде именно так как вам нужно.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
О! То что доктор прописал! А можно пример кода как такогоже добиться ? на джит хабе вроде не нашел.
Re: yii2-fileapi from vova07
Реальный код что есть в демо примере, можете посмотреть тут: https://github.com/vova07/yii2-start-us ... up.php#L47
По сути там 3 строки нужно указать.
По сути там 3 строки нужно указать.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Большое спасибо, Crop заработал как положено!
А можно подсказку как добиться того чтобы закачивалось сразу несколько файлов?
Файл оригинал, кропнутый файл, и скажем еще авто кроп кропнутого файла с заранее указанными размерами ?
Тоесть закачиваем полюбому файл оригинал котрый был допустим 1000x1000.
Кроп юзеру мы задали 100x100.
Но после того как он его сделает и создаться файл 100x100, с него еще берем отдельно 50x50 картинку.
И еще вопрос. Закачавшись на страничке появляется иконка рисунка, и если провести поверх мышкой то выходит функция удаления рисунка, нажав кнопку рисунок удаляется со странички, однако на диске он так и остается, не удалившись. По идее он ведь должен стираться или я чтото неправильно понял ?
А можно подсказку как добиться того чтобы закачивалось сразу несколько файлов?
Файл оригинал, кропнутый файл, и скажем еще авто кроп кропнутого файла с заранее указанными размерами ?
Тоесть закачиваем полюбому файл оригинал котрый был допустим 1000x1000.
Кроп юзеру мы задали 100x100.
Но после того как он его сделает и создаться файл 100x100, с него еще берем отдельно 50x50 картинку.
И еще вопрос. Закачавшись на страничке появляется иконка рисунка, и если провести поверх мышкой то выходит функция удаления рисунка, нажав кнопку рисунок удаляется со странички, однако на диске он так и остается, не удалившись. По идее он ведь должен стираться или я чтото неправильно понял ?
Re: yii2-fileapi from vova07
Для такого поведения, вам нужно будет дописать самостоятельно логику нарезки. Понадобится добавить обработчик для создания автоматической картинки с размером 50Х50. И включить отправку оригинальной картинки: https://github.com/RubaXa/jquery.fileap ... nalboolean
Но в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
Касательно изображения: как я понял речь идет об удалении картинки до её сохранения. Возможно это нужно доработать, но логика подразумевала, что временная папка будет очищаться по крону, и дополнительных заморочек с этим не предполагалось.
Но в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
Касательно изображения: как я понял речь идет об удалении картинки до её сохранения. Возможно это нужно доработать, но логика подразумевала, что временная папка будет очищаться по крону, и дополнительных заморочек с этим не предполагалось.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Попробовал отправку оригинальной картинки но кажется чтото делаю неправильно.
Ругается на
Код: Выделить всё
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
Это нужно в "settings" массиве прописать, так как это свойство именно плагина, а не виджета.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Добавил в view
В модели прописано
В контроллере
Как результат , в момент заполнения формы превьюшка подкачивается в test1.
затем если отправить форму test1 очищается, а ее содержимое переходит в test2.
Однако оригинальная картинка, так и не сохраняется нигде.
Код: Выделить всё
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 очищается, а ее содержимое переходит в test2.
Однако оригинальная картинка, так и не сохраняется нигде.
Re: yii2-fileapi from vova07
Я по этому поводу писал выше, и предупреждал:
моё стандартное поведение из виджета, не адаптировано для этой задачи, по этому вам нужно заменить её на свою. Тоже самое и касательно стандартного экшена.в таком случае, вам нужно будет адаптировать поведение загрузки картинки самостоятельно, так как на сервер вместо одной картинки, будет отправлен массив с картинками, и каждую нужно будет сохранить.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Тоесть опция ничего не дает ? Под нее надо будет писать свой код, так ?
Код: Выделить всё
'imageOriginal' => true
Re: yii2-fileapi from vova07
По сути да.
Она просто указывает плагину, чтоб он на сервер отправлял не только кроп что выбрал пользователь, но и сам оригинал. А вот уже дальнейшие действия, вы сами должны написать, и решить.
Она просто указывает плагину, чтоб он на сервер отправлял не только кроп что выбрал пользователь, но и сам оригинал. А вот уже дальнейшие действия, вы сами должны написать, и решить.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Ок спасибо, а можно узнать в каком месте происходит обработка той превьюшки? тоесть сам код закачки превьюшки, чтоб я на его примере прилепил туда все то остальное что мне нужно.
Re: yii2-fileapi from vova07
Кроп и обработка начинается вот здесь: https://github.com/vova07/yii2-fileapi- ... t.php#L391
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
спасибо, буду разбираться.
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
Еще вопросик.
Вот например в виджете нашел место
Если перекинуть в true то закачивается целая картинка без кропа.
Вопрос в другом. Побегал по файлам и нигде не нашел места где проверяется значение этого самого autoUpload.
Можете ткнуть пальцем ?
Вот например в виджете нашел место
Код: Выделить всё
if ($this->crop === true) {
$this->settings['autoUpload'] = false;
}
Вопрос в другом. Побегал по файлам и нигде не нашел места где проверяется значение этого самого autoUpload.
Можете ткнуть пальцем ?
Re: yii2-fileapi from vova07
Данный параметр относится к Javascript плагину. Хочу напомнить что мой виджет это обертка над этим плагином: https://github.com/RubaXa/jquery.fileapi по этому все что в коде, это чисто обработка настроек виджета, и передача их в правильном виде в сам плагин. Дальше уже все, делается на основе плагина JS.
Советую кстати ознакомится с документацией этого инструмента, там и найдете место где идет проверка на "autoUpload"
Советую кстати ознакомится с документацией этого инструмента, там и найдете место где идет проверка на "autoUpload"
-
- Сообщения: 241
- Зарегистрирован: 2014.12.06, 00:06
Re: yii2-fileapi from vova07
тоесть основные файлы значит лежат в папке vendor/rubaxa/fileapi? я правильно понял ?