我有一个多部分表单,可以接受来自单个字段的多个图片,定义如下:
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
的单文件版本。对于记录,没有与文件上载字段关联的验证规则。
关于导致表单丢失其他图片的原因的任何想法?