Télécharger des fichiers dans Laravel à l'aide de Response::download
Dans les applications Laravel, il peut être nécessaire d'avoir un bouton dans une vue qui permet aux utilisateurs de télécharger des fichiers sans accéder à une vue ou un itinéraire distinct. Cependant, certains problèmes courants surviennent lors de la mise en œuvre de cette fonctionnalité à l'aide de Response::download.
Problème 1 : Chemin d'accès au fichier inexistant
Si le chemin d'accès au Le fichier est incorrect ou le fichier n'existe pas, Response::download générera une erreur. Pour résoudre ce problème, assurez-vous que le chemin du fichier est exact et que le fichier est présent à l'emplacement spécifié.
Problème 2 : Navigation de téléchargement
Par défaut, lorsque le téléchargement est cliqué, l'utilisateur sera dirigé vers une nouvelle vue ou un nouvel itinéraire. Pour éviter cela, la fonction de téléchargement doit être gérée dans la vue actuelle.
Voici un exemple corrigé qui résout les deux problèmes :
<code class="php">public function getDownload() { // Full physical path to the PDF file $file = public_path() . "/download/info.pdf"; // Define the headers for the response $headers = [ 'Content-Type' => 'application/pdf', ]; // Return the response with the file and headers return response()->download($file, 'filename.pdf', $headers); }</code>
Mise à jour pour Laravel 5
Dans Laravel 5 et supérieur, la façade Response est obsolète. Utilisez plutôt le code suivant :
<code class="php">return response()->download($file, 'filename.pdf', $headers);</code>
Avec ces corrections, le bouton de téléchargement téléchargera correctement le fichier sur la même vue sans provoquer d'erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!