Télécharger des fichiers efficacement avec Laravel : utiliser Response::Download
Vous rencontrez des problèmes en essayant d'activer le téléchargement de fichiers dans votre application Laravel ? Cet article vous guidera dans la résolution des problèmes courants, tels que les erreurs d'existence de fichiers et la navigation de page indésirable.
Problème 1 : Erreur d'existence de fichier
Le chemin de fichier spécifié dans le La méthode getDownload() est incorrecte. L'application ne parvient pas à localiser le fichier dans public/download/info.pdf. Essayez plutôt d'utiliser ce qui suit :
<code class="php">$file= public_path(). "/download/info.pdf";</code>
Cela fournit le chemin physique complet du fichier.
Problème 2 : Navigation dans les pages
Pour empêcher le téléchargement de diriger l'utilisateur vers une nouvelle vue, modifiez le paramètre balisez dans votre vue comme suit :
<code class="html"><a href="#" class="btn btn-large pull-right" onclick="downloadFile()"><i class="icon-download-alt"></i> Download Brochure</a></code>
Ensuite, ajoutez la fonction JavaScript suivante à votre vue :
<code class="javascript">function downloadFile() { window.location.href = "/download"; }</code>
Cela appellera l'action getDownload() sans recharger la page.
Réponse mise à jour pour Laravel 5 et versions ultérieures
Versions Laravel 5 et versions ultérieures ont introduit une nouvelle syntaxe pour la façade Response. Utilisez le code suivant au lieu de celui fourni dans la réponse originale :
<code class="php">$headers = [ 'Content-Type' => 'application/pdf', ]; return response()->download($file, 'filename.pdf', $headers);</code>
Conclusion
En implémentant ces modifications, vous disposerez d'un bouton de téléchargement de fichier fonctionnel qui télécharge les fichiers de manière transparente sans accéder à d'autres pages.
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!