2017-07-07 5 views
0

Ich habe diese Funktion, mit der Benutzer ein Bild oder mehr hochladen können. Ich erstelle bereits die Validierungsregeln, aber es wird immer falsch zurückgegeben, egal was die Eingabe ist.Wie validiere ich mehrere Bilder?

Regeln:

public function rules() 
    { 
     return [ 
      'image' => 'required|mimes:jpg,jpeg,png,gif,bmp', 
     ]; 
    } 

Upload-Methode:

public function addIM(PhotosReq $request) { 
     $id = $request->id; 
     // Upload Image 
     foreach ($request->file('image') as $file) { 
      $ext = $file->getClientOriginalExtension(); 
      $image_name = str_random(8) . ".$ext"; 
      $upload_path = 'image'; 
      $file->move($upload_path, $image_name); 
      Photos::create([ 
       'post_id' => $id, 
       'image' => $image_name, 
      ]); 
     } 
     //Toastr notifiacation 
     $notification = array(
      'message' => 'Images added successfully!', 
      'alert-type' => 'success' 
     ); 
     return back()->with($notification); 
    } 

Wie dieses Problem zu lösen? Das ist alles und danke!

Antwort

1

Sie mögen mehrere Bild-Upload Feldnamen haben und multiple Attribut zu Ihrem Eingangselement hinzufügen

<input type="file" name="image[]" multiple="multiple"> 

Damit ist die Eingabe wie Array innerhalb dessen wird es Bilder sein. Da es eine andere Methode für die Überprüfung der Array-Eingabe gibt, lesen Sie die Dokumentation here.

Also, Sie haben etwas zu validieren:

$this->validate($request,[ 
    'image' => 'required', 
    'image.*' => 'mimes:jpg,jpeg,png,gif,bmp', 
]); 

Hope, Sie verstehen

+0

Sie sparte mein Tag, danke! –

+0

Congrats bro, Fühlt sich gut an, es hat dir geholfen. Also, bitte Frage schließen –