2017-12-06 2 views
-2

versucht, ein Foto-Upload zu machen, aber es gibt mir den folgenden Fehler, obwohl es eine Weile zurück gearbeitet hat! Was soll ich ändern? Ich verwende Larven 5,4Laravel 5.4! FatalThrowable Fehler

FatalThrowableError Anruf auf eine Elementfunktion getClientOriginalName() auf null

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\DB; 
use Illuminate\Support\Facades\Auth; 

    public function uploadPhoto(Request $request){ 

     $file = $request->file('pic'); 
     $filename = $file->getClientOriginalName(); 

     $path ='public/img'; 

     $file->move($path,$filename); 
     $user_id = Auth::user()->id; 

     DB::table('users')->where('id',$user_id)->update(['pic' => $filename]); 
     return back(); 
    } 
} 
+0

Haben Sie 'enctype =" multipart/form-data "' in Ihrem Formular eingeschlossen? Wenn Sie dies nicht tun, erhalten Sie nicht die Datei, die Sie erwarten. –

+0

hast du den Namen für die Eingabe geändert? ' – JoshKisb

+0

Sieht so aus, als wäre dein Upload nicht zustande gekommen. Sie müssen überprüfen, ob '$ request-> file ('pic')' 'null' oder' UploadedFile' zurückgibt. Wenn null, sollten Sie einen Fehler werfen. Allerdings stimmt etwas mit Ihrem Upload in HTML nicht. Vielleicht zeige den Upload-Code. –

Antwort

0

Try Input Fassade zu verwenden, wenn zu überprüfen Ihre Anfrage hat Dateiobjekt

use Illuminate\Support\Facades\Input; 

$file = $request->file('pic'); 
if (Input::hasFile('pic')) { 
    $filename = Input::file('pic')->getClientOriginalName(); 
    // .. rest of the code 
} 
+0

warum ... '$ request' ist die aktuelle Anfrage .. das ist, was die' Input' Fassade als Wurzel verwendet – lagbox

+0

@lagbox ich eine andere Möglichkeit gepostet (nicht zu duplizieren die Antwort) als für die Verwendung von '$ Anfrage 'Tiger hat bereits als eine Antwort vor mir geschrieben –

+0

können Sie 'Request',' Input', '$ request',' request() ',' app ('request') 'etc etc .. weil sie alle Request sind ... das war was ich darauf hinwies :) – lagbox

0

Es scheint, wie in Ihrer Anfrage die Datei nicht existiert, kann Sie, wenn eine Datei bestimmen ist auf Antrag vorhanden, um die hasFile Methode:

if ($request->hasFile('pic')) { 
    // 
}