codeigniter 4 多文件验证

Posted

技术标签:

【中文标题】codeigniter 4 多文件验证【英文标题】:codeigniter 4 multiple file validation 【发布时间】:2022-01-08 22:12:15 【问题描述】:

我想检查文件是否在控制器中被选中,如果未选中则显示错误,否则在服务器上上传。我创建了一个像 <input type="file" name="car_gallery[]" multiple /> 这样的 html 元素,我的表单也有这个属性 enctype="multipart/form-data"。 在控制器中我这样检查

if($this->request->getFileMultiple('car_gallery'))

但即使我没有选择任何文件,这种情况也总是正确的。 什么是多个文件上传的解决方案它在单个图像上工作正常

【问题讨论】:

你试过 var_dump($this->request->getFileMultiple('car_gallery')); 看看为什么它被标记为 true 吗? 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我也不确定,因为我也遇到了这个问题。但是,我正在记录(通过print_r)对$this->request->getFileMultiple('my_file_name_here') 的调用,并注意到当我在没有附加文件的情​​况下提交表单时,创建了一个文件对象(因此返回TRUE - 我认为)。该对象的所有属性都为空,除了error 属性设置为4,如果此映射到php's File Upload Errors,则表示没有上传任何文件。

不知道是不是因为这个错误而专门创建了对象?

这是我在提交没有附加文件的表单时记录的代码。

(
    [0] => CodeIgniter\HTTP\Files\UploadedFile Object
        (
            [path:protected] => 
            [originalName:protected] => 
            [name:protected] => 
            [originalMimeType:protected] => 
            [error:protected] => 4
            [hasMoved:protected] => 
            [size:protected] => 0
            [pathName:SplFileInfo:private] => 
            [fileName:SplFileInfo:private] => 
        )

)

老实说,我不知道如何(或不)检查 if($this->request->getFileMultiple('my_file_name_here')) 是否始终为真,无论是否附加了文件。

我可能完全错了。我愿意提供任何帮助和建议。

如果这完全错误或不符合网站规则,请务必将其删除。

【讨论】:

以上是关于codeigniter 4 多文件验证的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter:将最后一个活动存储到数据库中

使用 codeigniter ci_marchant_Lib 库的 PayPal 定期付款

Codeigniter 4 - 表单验证

Facebook getUser() 返回 0 [重复]

CodeIgniter - 表单验证和文件上传数据

CodeIgniter - 文件上传需要验证