Maison > développement back-end > tutoriel php > Comment télécharger des fichiers dans Laravel à l'aide de Response :: download ?

Comment télécharger des fichiers dans Laravel à l'aide de Response :: download ?

Mary-Kate Olsen
Libérer: 2024-11-04 15:20:02
original
425 Les gens l'ont consulté

How to Download Files in Laravel Using Response::download?

Téléchargement de fichiers dans Laravel à l'aide de Response::download

Dans Laravel, la méthode Response::download permet aux utilisateurs de télécharger des fichiers depuis le serveur . Voici une solution aux problèmes rencontrés lors de la mise en œuvre de cette fonctionnalité :

1. Problème de chemin de fichier :

L'erreur « Le fichier...n'existe pas » indique un chemin de fichier incorrect. Pour résoudre ce problème, utilisez l'assistant public_path() pour spécifier le chemin physique complet du fichier :

$file= public_path(). "/download/info.pdf";
Copier après la connexion

2. Empêcher la navigation dans les pages :

Pour éviter de naviguer vers une autre vue ou un autre itinéraire, utilisez une requête Ajax pour gérer le téléchargement du fichier. Voici comment :

ViewController :

<button class="btn btn-large pull-right" data-href="/download" id="downloadBtn">
    <i class="icon-download-alt"></i> Download Brochure
</button>
Copier après la connexion

JavaScript :

$(document).ready(function() {
    $('#downloadBtn').click(function() {
        $.ajax({
            url: $(this).data('href'),
            success: function() {
                alert('File downloaded successfully!');
            },
            error: function() {
                alert('Error downloading file!');
            }
        });
    });
});
Copier après la connexion

Contrôleur :

public function getDownload()
{
    // Same code as before, but now it returns a JSON response
    return response()->json([
        'success' => true,
        'message' => 'File downloaded successfully!'
    ]);
}
Copier après la connexion

Mise à jour pour Laravel v5.0 :

Comme indiqué dans la solution, vous pouvez utiliser la méthode Response() dans Laravel v5.0 à la place de la façade Réponse. La structure de l'en-tête est également légèrement différente, comme indiqué ci-dessous :

$headers = [
    'Content-Type' => 'application/pdf',
];

return response()->download($file, 'filename.pdf', $headers);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal