2017-06-18 83 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!"); 
    } 
}