2017-02-07 6 views
0

Ich versuche, ein Bild hochzuladen, obwohl jedes Mal, wenn ich es zurückgebe, dass die store() auf null Fehler. Ich habe das Formular auf enctype = "multipart/form-data" gesetzt, was nicht geholfen hat.Aufruf an einen Mitgliedsfunktionsspeicher() auf null - Laravel 5.4

Kann mir jemand in die richtige Richtung zeigen?

Danke.

Funktion in der Steuerung

public function store(Request $request){ 

    $file = $request->file('imgUpload1')->store('images'); 
    return back(); 

} 

Formular aus:

<form action="/imgupload" method="POST" enctype="multipart/form-data"> 
    {{ csrf_field() }} 
    <div class="form-group"> 
    <label for="imgUpload1">File input</label> 
    <input type="file" id="imgUpload1"> 
    </div> 
    <button type="submit" class="btn btn-primary">Submit</button> 
</form> 

gelöst: fehlte Namensschild auf Eingabefeld

+1

hat keinen Namen Attribut – Adam

+0

Nun ... das ist dumm in meinem Namen hinzufügen. Vielen Dank! – Erasersharp

+1

Nicht dumm es passiert, frische Augen sind alles was benötigt wurde :) – Adam

Antwort

1

Die Daten sind immer abgerufen mit dem Namen-Attribut, das in fehlt Ihre Formulareingabe

Ändern <input type="file" id="imgUpload1">

zu

<input type="file" id="imgUpload1" name = "imgUpload1">

und tut Seite eine Validierung in der Steuerung wie diese

$val - \Validator:make($request->all ,[ 
    'imgUpload1' => 'required', 
]) 

if($val->fails(){ 
    return redirect()->back()->with('message' => 'No file received'); 
}) 
else{ 
    $file = $request->file('imgUpload1')->store('images'); 
    return redirect()->back(); 
} 
0

Sie Fehler erhalten, weil Ihre Speicherfunktion ist nicht die Datei von Ihrer Anfrage aus der Sehende Eingabe-Tag, um dies zu beheben, setzen Sie den "Namen" nur ich habe unter

<form action="/imgupload" method="POST" enctype="multipart/form-data"> 
    {{ csrf_field() }} 
    <div class="form-group"> 
    <label for="imgUpload1">File input</label> 
    <input type="file" id="imgUpload1" name="imgUpload1"> 
    </div> 
    <button type="submit" class="btn btn-primary">Submit</button> 
</form> 
getan
0

Sie diesen Code in Ihrem Controller

if ($request->file('imgUpload1') == null) { 
    $file = ""; 
}else{ 
    $file = $request->file('imgUpload1')->store('images'); 
} 
Verwandte Themen