2014-09-19 2 views
7

ich ein Formularfeld für ein Bild hochladen, die ich mit ‚Dateien‘ öffnen => true, etwa so:Laravel Eingang :: hasFile (‚Bild‘) gibt false zurück, auch wenn eine Datei hochgeladen

{{ Form::label('image', 'Image') }} 
{{ Form::file('image') }} 

und in meinem Controller-möchte ich mich, ob eine Datei und tun damit etwas hochgeladen überprüfen:

if (Input::hasFile('image')){ 
     $in_path = 'img/'; 
     $in_extension = Input::file('image')->getClientOriginalExtension(); 
     $filename = Input::get('name').".".$in_extension; 
     Input::file('image')->move($in_path, $filename); 
     $user->image = $filename; 
    } 

Aber Eingang :: hasFile gibt immer false zurück, und ich weiß nicht, warum.
Hat jemand eine Idee?

EDIT !:

Input::file('image'); 

Ergebnisse in:

Symfony\Component\HttpFoundation\File\UploadedFile Object 
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.JPG 
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream 
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1 
[pathName:SplFileInfo:private] => 
[fileName:SplFileInfo:private] => 
) 

Ich habe für einen anderen Benutzer mit einem anderen Bild getestet um und das funktioniert gut. Ich verstehe nicht, warum das für einige Benutzer funktioniert und für einige andere nicht.
Gibt es vielleicht Bilder, die nicht akzeptiert werden?

+0

Die Datei existiert? Wird es hochgeladen? Können Sie posten, was sich in 'Input :: file()' befindet? Verwenden Sie 'dd()' für var_dumping. –

+0

Ich habe meine Frage bearbeitet! – jrenk

+1

Ich löste was falsch war. Der Code ist in Ordnung, aber das Problem war, dass einige Bilder einfach zu groß waren. – jrenk

Antwort

2

ich gelöst, was falsch war. Der Code ist in Ordnung, aber das Problem war, einige Bilder waren einfach zu groß.

EDIT:
Wie keine Panik wies darauf hin, upload_max_filesize Bearbeitung kann das Problem lösen.

+1

Warum gibt ein großes Bild hasfile() zurück -> false? – Jorre

+0

@Jorre Ich kann das nicht beantworten ... Aber auf kleineren Bildern hat alles funktioniert. – jrenk

+0

Das ist _nicht_ besser als Kommentar, nur weil es kurz ist. Es ist die Antwort, und es ist absolut gültig. Ich hatte das gleiche Problem und kam zur selben Lösung. Das Erhöhen von 'upload_max_filesize' hat nur ein bisschen dafür gesorgt. –

8

Wie öffnen Sie Ihr Formular? Wenn Sie Ihre Form möchten Dateien akzeptieren müssen Sie so öffnen Sie es wie folgt aus:

echo Form::open(array('url' => 'foo/bar', 'files' => true)) 

Opening a form in the Laravel Docs

+0

Ja, ich habe vergessen zu erwähnen, dass ich das schon getan habe. – jrenk

2

hatte ich das gleiche Problem, ich meinen Code überprüft und festgestellt, dass ich nicht die enctype = „multipart/form-data“ Header in Form hatte, hoffen, dass diese große jemand Vernachlässigung Hilfe

Verwandte Themen