Yii2: загрузка kartik-v / fileinput при выборе - PullRequest
0 голосов
/ 20 июня 2019

Я использую плагин YII2 + /kartik-v/bootstrap-fileinput. Мне нужно загрузить файл, когда пользователь просто поместит его на вход загрузки. Сделать это по запросу ajax. Когда я устанавливаю опцию "showUpload" на false, и устанавливаю "uploadUrl" с действием ajax, никакой запрос к серверу не происходит при событии файла изменения.

<?= $form->field($model, 'logotype')->widget(FileInput::class, [
    'options'       => [ 'accept' => 'image/*' ],
    'pluginOptions' => [
    'showCaption' => false,
    'showRemove'  => false,
    'showUpload'  => false,
    'browseClass' => 'btn btn-primary btn-block',
    'browseIcon'  => '<i class="glyphicon glyphicon-camera"></i> ',
    'uploadUrl'=> '/module/controller/action'
],
]); ?>

Я ожидаю, что форма создаст ajax POST на сервере с моим файлом в данных, когда пользователь выберет изображение и без нажатия кнопки «Загрузить» дополнительно. Можно ли сделать это с помощью этого плагина? Или мне стоит написать собственный обработчик события onchange? Возможно, в настройках плагина есть какой-то обратный вызов.

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете использовать событие change для запуска загрузки вручную, когда файл выбран, и для запуска загрузки ajax, вам следует вызвать метод upload.

См. Код ниже

$('#input-id').on('change', function(event) {
    $(this).fileinput('upload');
});

Надеюсь, это поможет

...