FormIgniter在表单验证时丢失图像

时间:2016-09-26 13:56:11

标签: php forms codeigniter validation file-upload

我有一个多部分表单,可以接受来自单个字段的多个图片,定义如下:

echo form_upload('userfile[]', set_value('userfile[]'), 'multiple');

当我运行一个成功的表单(使用CodeIgniter的内置验证器)时,它只上传一个图像(列表中的最后一个)。

可疑,我在表单验证时转储了$_FILES全局,并显示以下内容:

Array
(
    [userfile] => Array
        (
            [name] => image_three.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phpZl6RHT
            [error] => 0
            [size] => 18236
        )
)

如果我返回并清除任何必填字段(这并不重要),相同的输入会在$_FILES中显示以下内容:

Array
(
    [userfile] => Array
        (
            [name] => Array
                (
                    [0] => image_one.jpg
                    [1] => image_two.jpg
                    [2] => image_three.jpg
                )
            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                    [2] => image/jpeg
                )
            [tmp_name] => Array
                (
                    [0] => /tmp/phpEFaVib
                    [1] => /tmp/phpkcXJmL
                    [2] => /tmp/phpoqcDql
                )
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
            [size] => Array
                (
                    [0] => 43308
                    [1] => 60883
                    [2] => 18236
                )
        )
)

基于不完整表单正确注册所有三个图像的事实,我假设表单已正确定义,并且验证引擎中的某些内容是导致它的原因。也就是说,我通过禁用所有表单验证代码来测试该假设的尝试返回了$_FILES的单文件版本。对于记录,没有与文件上载字段关联的验证规则。

关于导致表单丢失其他图片的原因的任何想法?

0 个答案:

没有答案