2016-07-28 9 views
0

Es scheint, dass mein Datei-Upload nicht funktioniert. Funktionen der Datei [z. B. $ file-> getOriginalExtension();] geben Fehler zurück.Laravel Upload-Dateiform funktioniert nicht

Hier ist meine Ansicht:

<form class="form-horizontal" method="POST" action="/project/file_post.php" enctype="multipart/form-data"> 

    <---other text inputs---> 
    Photo: <input type="file" name="photo" /> 

    <input type="submit" class="btn btn-success btn-inline" value="SAVE "> 

</form> 

Controller:

//code below returns only the filename 
$input = Input::all(); 
$file = array_get($input,'photo'); 
print_r($file); 

//but when using this..it returns an error 
$extension = $file->getClientOriginalExtension(); 

DD ($ input) zurückkehrt:

array:8 [▼ 
    "_token" => "6eScEZe1SLL72JDrQjmBJllNyiHaT8hdGKKMtjsD" 
    "photo" => "test_test_2016.jpg" 
    "field2" => "test" 
    "field3" => "test" 
    "field4" => "test" 
    "field5" => "test" 
    "field6" => "test" 
    "field7" => "test" 
] 

Bin ich etwas falsch? Es gibt den Dateinamen der Datei zurück, aber wenn die Funktionen verwendet werden, gibt es alle Arten von Fehler zurück (z. B. Aufruf einer Mitgliedsfunktion getClientOriginalExtension() für Zeichenfolge)

Können Sie bitte helfen? Vielen Dank!

Nachtrag:

$photo = $request->file('photo'); 
echo $photo; 

-Code oben auch nicht funktioniert. Keine Fehler. Gibt nur leer zurück.

+0

fügen Sie das Formular 'action =" post_page.php ";' Ich denke, es fehlt in Ihrem Code. Ändern Sie die Seitenadresse, die der Code nach dem Senden des Formulars ausgeführt hat. –

+0

@JeesKDenny, ich habe vergessen, es in meine Post zu setzen, aber es fehlt nicht auf meinem tatsächlichen Code. – Ronald

+0

können Sie nicht direkt so verwenden? $ name = Eingabe :: Datei ('Foto') -> getClientOriginalName(); – Jaimin

Antwort

0

Anfrage $ Anfrage für mich gearbeitet.

if ($ request-> hasFile ('Foto')) {$ photoExt = $ request-> Datei ('Foto') -> getClientOriginalExtension(); }

0

Je nach Ihrer Version von Laravel müssen Sie Eingabe :: Datei verwenden, so etwas wie diese verwenden, anstatt in Ihrem Controller

if (Input::hasFile('photo')) { 
    $photoFile = Input::file('photo'); 
    $extension = $photoFile->getClientOriginalExtension(); 
}