J'essaie d'importer plusieurs fichiers dans Laravel à l'aide de Laravel Excel.
J'ai le code suivant dans mon fichier blade qui me permet de sélectionner plusieurs fichiers à télécharger :
<form action="{{ route('file-import') }}" method="POST" enctype="multipart/form-data"> @csrf <div class="form-group mb-4" style="max-width: 500px; margin: 0 auto;"> <div class="custom-file text-left"> <input type="file" name="file" class="custom-file-input" id="customFile" multiple> <label class="custom-file-label" for="customFile">Choose file</label> </div> </div> <button class="btn btn-primary">Import data</button> </form>
Dans le contrôleur j'utilise le code suivant :
public function fileImport(Request $request) { Excel::import(new LogsImport, $request->file('file')->store('temp')); return back(); }
Cela fonctionne bien mais il n'importe que le premier fichier que je sélectionne. Je crois que j'ai besoin d'une sorte de déclaration foreach. J'ai essayé les options suivantes :
public function fileImport(Request $request) { foreach($request->file('file') as $f){ Excel::import(new LogsImport, $f->store('temp')); } return back(); }
Mais en utilisant cela, aucun fichier n'est importé.
J'ai également essayé d'imprimer $request mais j'ai obtenu un énorme tableau et je n'ai rien trouvé de pertinent pointant vers le fichier que j'ai téléchargé.
Toute aide serait grandement appréciée. Merci
Essayez d'utiliser le tableau name="file[]" au lieu de name="file"