Yii2 - 使用 kartik fileInput 上传表单中的多个图像

问题描述 投票:0回答:3

现在,kartik小部件的问题出现在表单视图中,在您上传第一张照片后(在提交表单之前),对于其他下一张照片,它只会覆盖之前的照片,并且该字段中的唯一预览是最后一张照片上传了一张。

 <?= $form->field($model, 'image')->widget(FileInput::classname(), [
                'name'=> 'ads_photos[]',
                'options'=>['accept'=>'image/*', 'multiple'=>true, ],
                'pluginOptions'=>[
                'allowedFileExtensions'=>['jpg','gif','png'],
                'overwriteInitial'=>false,
                ]
            ]); 
        ?>

如您所见,我已经设置了

'multiple'=>true
,并且 '
overwriteInitial'=>false,
就您在 指南 中所见,它也说了同样的话。
但有什么问题吗?

file-upload yii2 widget
3个回答
0
投票

您需要更仔细地阅读指南:

注意: 使用小部件上传多个文件时,您必须通过将 [] 附加到输入/属性名称来以数组格式命名 HTML 输入。查看使用示例。


0
投票

您是否尝试过设置默认初始预览。假设如果您的小部件没有任何以前的图像,则设置默认图像,就像我们为个人资料照片设置默认头像一样。

通过设置初始预览属性来尝试此操作

<?= $form->field($model, 'image')->widget(FileInput::classname(), [
                'name'=> 'ads_photos[]',
                'options'=>['accept'=>'image/*', 'multiple'=>true, ],
                'pluginOptions'=>[
                'allowedFileExtensions'=>['jpg','gif','png'],
                'initialPreview'=>[
            "http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/631px-FullMoon2010.jpg",
        ],
        'overwriteInitial'=>false,
        'initialPreviewAsData'=>true,
                ]
            ]); 
        ?>

希望对你有帮助


0
投票

允许我连续处理多个选择(即不使用 ctrl)的唯一解决方案是伪造引导文件输入小部件的“uploadUrl”插件设置。 设置如下。

'showUpload' => false, 
'uploadUrl' => Url::to(['/site/file-upload']), //need to set this to allow multiple files,
'overwriteInitial'=>false,

然后我捕获表单提交中的文件,因此我关闭了上传功能。

© www.soinside.com 2019 - 2024. All rights reserved.