【问题标题】:Validate input file image array in laravel 4在 laravel 4 中验证输入文件图像数组
【发布时间】:2013-10-18 17:46:59
【问题描述】:

我有一个这样的表单,可以有多个图像[] 字段:

{{ Form::open(array('url' => 'foo/bar', 'files' => true)) }}
    <input type="file" name="images[]">
{{ Form::close() }}

如何使用 laravel 4 验证来验证此字段? 我试过这条规则,但它不起作用:

$rules = array('images[]' => 'required|image');

【问题讨论】:

    标签: php validation laravel laravel-4


    【解决方案1】:

    试试这样的:

    $rules = array(
        'images'     => 'required|min:1|integerOrArray'
    );
    

    基于答案here

    使用来自here的验证器

    【讨论】:

    • 没用。方法 [validateIntegerOrArray] 不存在。我想我将不得不扩展验证类或制定自己的规则。
    • 是的,使用我提供的链接问题中扩展的验证器。查看我编辑的答案
    【解决方案2】:

    首先,您是否在循环中运行“images[]”? laravel 4 有很多代码示例实际上根本不起作用...编写它们的人不知道如何使用 var_dump()...

    如果不是 - 您可能正在对一组对象进行验证,请尝试检查:

    var_dump(Input::file('files'));
    

    所以现在在本次讲座之后,让我们运行一个 for 循环(foreach idk 为什么有一些问题):

    $files = Input::file('images');
    $filesCount = count($files);
    
    for ($i=0; $i < $filesCount; $i++)
    {
        $file = $files[$i];
        $input = array(
            'upload' => $files[$i]
        );
    
        $rules = array(
            'upload' => 'image|max:15500'
        );
        $validation = Validator::make($input, $rules);
    }
    

    现在您可以运行验证了。 Laravel4 只尝试验证 mime 类型......所以它很容易受到攻击。

    【讨论】:

    • 我认为有一个规则会对我这样做,显然没有。我不喜欢这个想法或循环运行验证。就像我评论的那样,似乎唯一的方法是扩展验证类或编写我自己的规则。谢谢你的回答。
    猜你喜欢
    • 2014-06-07
    • 2017-11-13
    • 2014-09-20
    • 2018-01-10
    • 2014-05-21
    • 2016-01-24
    • 2021-12-07
    • 2021-03-06
    相关资源
    最近更新 更多