Laravel 如果不检查上载文件上的getClientOriginalName(),如何更好地执行此操作?

Laravel 如果不检查上载文件上的getClientOriginalName(),如何更好地执行此操作?,laravel,laravel-4,Laravel,Laravel 4,问题是,Input::file('resim')->getClientOriginalName()未上载图像时引发异常。(例如,当我直接点击HTML表单上的提交按钮时) 但是,required | max:3000 | image | mimes:jpg、gif、png如果我删除该行,此规则将不起作用。无论我上传的图像是否有效,它都不会通过mimes:jpg、gif、png控制 如何在不依赖Input::file('resim')->getClientOriginalName()的情况下实现这一

问题是,
Input::file('resim')->getClientOriginalName()未上载图像时引发异常。(例如,当我直接点击HTML表单上的提交按钮时)

但是,
required | max:3000 | image | mimes:jpg、gif、png
如果我删除该行,此规则将不起作用。无论我上传的图像是否有效,它都不会通过
mimes:jpg、gif、png
控制


如何在不依赖
Input::file('resim')->getClientOriginalName()的情况下实现这一点?我需要
必需的
控件来处理必要的操作。

问题在于我试图上传的图像。出于某种原因,我的一些JPG文件无法通过mimetype检查,而其他文件则可以

    $input = Input::all();
    $input['resim'] = Input::file('resim')->getClientOriginalName();

    $rules = array( 
        'resim'         => 'required|max:3000|image|mimes:jpg,gif,png',
    );

    $validation = Validator::make($input, $rules);

    if($validation->fails())
    {
        return View::make('theme-admin.slider_add')
            ->nest('message_area', 'theme-admin.error', array('message' => $validation->messages()->first()));
    }

    ...

他们都通过了
getClientOriginalName()

阅读我的问题。我知道这件事。问题是,没有有效的图像通过image | mimes:jpg、gif、png检查我是否这样使用它,因为$input['resim']不包含getClientOriginalName()返回的内容。如果您知道这一点,为什么不使用它?!它能回答你的问题!尝试从规则中删除“图像”,看看是否有帮助。如果没有,那就有一些邪恶的灵魂!我刚刚尝试了代码,它验证了所有规则:必选| max:3000 | image | mimes:jpg、gif、png,因为它在我的安装上不起作用,也不能回答我的问题。我也试过同样的方法。如果你能读懂这个问题,你就会明白。如果没有“getClientOriginalName()”,它将无法通过验证。那么,您的代码中肯定存在其他地方的问题。我不认为这是一个谁的安装是'选择之一'的问题,以便工作的东西。你的表格是什么样子的?
//Input has file with name attribute as 'resim'
$rules = array('resim' => 'required|max:3000|image|mimes:jpg,gif,png');

$validator = Validator::make(Input::all(), $rules);

if ($validator->fails())
{
    return Redirect::to('...')->withErrors($validator);
}

...