我使用YII2 + /kartik-v/bootstrap-fileinput插件。我需要上传文件时,用户只是把它放在上传输入。通过ajax请求实现。当我将"showUpload“选项设置为false,并使用ajax操作设置"uploadUrl”时,在发生更改文件事件时不会向服务器发出请求。
<?= $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事件?也许在插件选项中有某种回调。
发布于 2019-06-21 05:18:06
您可以使用change事件在文件被选中时手动触发上载,而要触发ajax upload,您应该调用upload方法。
请参阅以下代码
$('#input-id').on('change', function(event) {
$(this).fileinput('upload');
});希望能有所帮助
发布于 2019-12-26 16:02:48
对我来说,"filebatchselected“事件是有效的。
最初的https://plugins.krajee.com/file-input-ajax-demo/6
$("#projectplan-plan_file").on('filebatchselected', function(event) {
$(this).fileinput('upload');
});https://stackoverflow.com/questions/56689782
复制相似问题