J'essaie de télécharger un fichier, mais il échoue lorsque la demande parvient au contrôleur. Avec fail, je veux dire que si j'essaie $request->hasFile("filename")
, retourne toujours faux.
Y a-t-il un champ spécifique que je dois spécifier dans la vue?
Ceci est un extrait de la vue:
<body>
<form action="{{url('dev/tester')}}" method="POST">
{{csrf_field()}}
<input type="file" name="file">
<button type="submit">Test</button>
</form>
</body>
Et voici le contrôleur
class Tester extends Controller
{
public function index(Request $request)
{
if($request->hasFile('file'))
{
dd('Got the file');
}
dd('No file');
}
public function testView()
{
return view('tests.file_upload');
}
}
Je suis toujours renvoyé "Aucun fichier".
Un indice? J'ai même vérifié le fichier php.ini pour voir s'il y avait une limite de taille, mais tout est réglé sur 32M comme paramètres par défaut de MAMP ...
Vérifiez si vous avez peut-être oublié d'ajouter enctype="multipart/form-data"
dans form
Vous devez activer le formulaire de téléchargement sur votre formulaire,
il y a 2 façons de le faire:
En utilisant HTML
<form action="{{url('dev/tester')}}" method="post" enctype="multipart/form-data">
En utilisant laravel Form & HTML ( https://laravelcollective.com/docs/5.2/html )
{!! Form::open( [ 'action' => url( 'dev/tester' ), 'method' => 'post', 'files' => true ] ) !!}
// Your form
{!! Form::close() !!}
Cela devrait fonctionner comme un charme!
Essayez d’ajouter le enctype="multipart/from-data"
à votre formulaire, cela devrait alors fonctionner!