2014-09-19 8 views
7

Mam pole formularza na przesyłanie rysunków, które otwarte z „plików” => true, tak jak poniżej:laravel Wejście :: hasFile („obraz”) zwraca false, nawet jeśli plik został dodany

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

a w moim kontroler chcę, aby sprawdzić, czy plik został przesłany i coś z tym zrobić:

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; 
    } 

Ale Wejście :: hasFile zawsze zwraca false i nie wiem dlaczego.
Czy ktoś ma pomysł?

EDIT !:

Input::file('image'); 

skutkuje:

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] => 
) 

Ja testowałem wokół innego obrazu dla innego użytkownika i to działa dobrze. Nie rozumiem, dlaczego to działa dla niektórych użytkowników, a dla niektórych innych nie.
Czy jest możliwe, że niektóre zdjęcia nie są akceptowane?

+0

plik istnieje? Czy to zostało przesłane? Czy możesz opublikować to, co jest w środku 'Input :: file()'. Użyj 'dd()' dla var_dumping. –

+0

Edytowałem moje pytanie! – jrenk

+1

Rozwiązałem problem. Kod jest w porządku, ale problem polegał na tym, że niektóre zdjęcia były po prostu duże. – jrenk

Odpowiedz

2

Rozwiązałem to, co było złe. Kod jest w porządku, ale problemem było to, że niektóre zdjęcia były po prostu duże.

EDIT:
Jak nie panikuj wskazał, edycja upload_max_filesize może rozwiązać ten problem.

+1

dlaczego jest powracający plik big hasfile() -> false? – Jorre

+0

@Jorre Nie mogę odpowiedzieć na to ... Ale wszystko działało na mniejszych obrazkach. – jrenk

+0

To _nie_ lepiej jako komentarz, tylko dlatego, że jest krótkie. To jest odpowiedź i jest całkowicie słuszna. Miałem ten sam problem i przybyłem do tego samego rozwiązania. Zwiększenie 'upload_max_filesize' tylko trochę zajął się tym. –

8

Jak otworzyć formularz? Jeśli chcesz, aby formularz, aby zaakceptować pliki trzeba więc otworzyć go tak:

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

Opening a form in the Laravel Docs

+0

Tak, zapomniałem wspomnieć, że już to zrobiłem. – jrenk

2

miałem ten sam problem, sprawdziłem mój kod i zauważyłem, że nie miałem enctype = „multipart/form-data” w postaci nagłówka, mam nadzieję, że to duża pomoc zaniedbania ktoś