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

时间:2016-08-20 13:35:19

标签: file-upload yii2 widget

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

import tensorflow as tf
import numpy as np

ph = tf.placeholder(shape=[None,3], dtype=tf.int32)

# look the -1 in the first position
x = tf.slice(ph, [0, 0], [-1, 2])

input_ = np.array([[1,2,3],
                   [3,4,5],
                   [5,6,7]])

with tf.Session() as sess:
        sess.run(tf.initialize_all_variables())
        print(sess.run(x, feed_dict={ph: input_}))

正如您所见,我已经设置 <?= $form->field($model, 'image')->widget(FileInput::classname(), [ 'name'=> 'ads_photos[]', 'options'=>['accept'=>'image/*', 'multiple'=>true, ], 'pluginOptions'=>[ 'allowedFileExtensions'=>['jpg','gif','png'], 'overwriteInitial'=>false, ] ]); ?> 'multiple'=>true,只要您在guide中看到相同的内容即可。
/> 但是问题是什么?

2 个答案:

答案 0 :(得分:0)

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

注意: 使用窗口小部件上载多个文件时,必须通过在输入/属性名称后附加[]来以数组格式命名HTML输入。查看示例以了解用法。

答案 1 :(得分: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,
                ]
            ]); 
        ?>

希望它能帮到你