2014-09-19 18 views
7

Ho un campo modulo per un upload Immagine, che ho aperto con 'files' => true, in questo modo:laravel ingresso :: hasFile ('immagine') restituisce false, anche se un file viene caricato

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

e nel mio controller voglio verificare se un file è stato caricato e fare qualcosa con esso:

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

Ma ingresso :: hasFile restituisce sempre false e non so perché.
Qualcuno ha un'idea?

EDIT !:

Input::file('image'); 

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

Ho testato in giro con un'altra foto di un altro utente, e questo funziona bene. Non capisco perché questo funziona per alcuni utenti e per alcuni altri no.
C'è forse qualche tipo di foto che non sono accettate?

+0

Il file esiste? È caricato? Puoi pubblicare cosa c'è dentro 'Input :: file()'. Usa 'dd()' per var_dumping. –

+0

Ho modificato la mia domanda! – jrenk

+1

Ho risolto ciò che era sbagliato. Il codice va bene, ma il problema era che alcune immagini erano semplicemente troppo grandi. – jrenk

risposta

2

Ho risolto quello che era sbagliato. Il codice va bene, ma il problema era che alcune immagini erano semplicemente troppo grandi.

EDIT:
Come niente panico rilevare, modificando upload_max_filesize può risolvere il problema.

+1

perché un'immagine grande restituisce hasfile() -> false? – Jorre

+0

@Jorre Non posso rispondere a questo ... Ma tutto ha funzionato su immagini più piccole. – jrenk

+0

Questo è _non_ meglio come commento solo perché è breve. È la risposta ed è perfettamente valida. Ho avuto lo stesso problema e sono arrivato alla stessa soluzione. Aumentando 'upload_max_filesize', un pò ci siamo presi cura di esso. –

8

Come si apre il modulo? Se si desidera che il modulo per accettare file è necessario in modo da aprire in questo modo:

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

Opening a form in the Laravel Docs

+0

Sì, ho dimenticato di dire che l'ho già fatto. – jrenk

2

Ho avuto lo stesso problema, ho controllato il mio codice e ho notato che non avevo l'enctype = "/ form-data multipart" header in forma, spero che questo grande trascuratezza aiuto chiunque

Problemi correlati