2017-06-18 82 views
1

我想验证多选文件上传到Laravel。Laravel验证多个文件

print_rRequest但我不明白为什么它不验证当明确所有上传图像。

print_r输出:

Array ([file] => Array ([0] => Illuminate\Http\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 236x177_3F2.jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 19335 [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 [pathName:SplFileInfo:private] => /tmp/phpWyxPrW [fileName:SplFileInfo:private] => phpWyxPrW) [1] => Illuminate\Http\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Bierstadt_Sunrise_Lg_1966-1[1].jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 113765 [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 [pathName:SplFileInfo:private] => /tmp/php5GtG4F [fileName:SplFileInfo:private] => php5GtG4F)))

代码:

if($typeof=="photo") 
     { 
     $photo = $request; 
     print_r($photo::all()); 
     $validator = Validator::make($photo::all(), [ 
      'file' => 'required|image|mimes:png,gif,jpeg,bmp' 
     ]); 
     if ($validator->fails()) { 
      abort(500,"Not an image!"); 
     } 

它总是以没有图像错误中止,即使你可以从print_r输出,他们看到的图像。

看起来像一个嵌套数组我试图抵消我的验证请求,然后我得到未定义的偏移量,请协助我去实际的文件数据进行适当的验证。

回答

3

嗯,它不是一个图像,它是一个图像数组。

您需要验证这样的:

if($typeof=="photo") 
{ 
    $photo = $request; 
    print_r($photo::all()); 

    $validator = Validator::make($photo::all(), [ 
     'file.*' => 'required|image|mimes:png,gif,jpeg,bmp' 
    ]); 

    if ($validator->fails()) { 
     abort(500,"Not an image!"); 
    } 
}