Maison > développement back-end > tutoriel php > Étapes pour utiliser le framework Laravel pour implémenter le téléchargement de fichiers et reprendre le téléchargement

Étapes pour utiliser le framework Laravel pour implémenter le téléchargement de fichiers et reprendre le téléchargement

WBOY
Libérer: 2023-08-01 13:26:01
original
2519 Les gens l'ont consulté

Étapes pour utiliser le framework Laravel pour implémenter le téléchargement de fichiers et la reprise du point d'arrêt

[Introduction au contexte]

Dans le développement d'applications Web, le téléchargement de fichiers est une exigence fonctionnelle courante. Si le fichier est volumineux ou si l'environnement réseau est médiocre, l'utilisateur devra peut-être reprendre le téléchargement afin que le téléchargement puisse reprendre là où il a été interrompu. Cet article explique comment implémenter les fonctions de téléchargement de fichiers et de reprise de point d'arrêt à l'aide du framework Laravel.

【Étape 1 : Créer un itinéraire】

Tout d'abord, nous devons créer un itinéraire pour gérer les demandes de téléchargement de fichiers. Ouvrez le fichier routes/web.php et ajoutez le code suivant :

Route::get('/download', 'DownloadController@download')->name('download');
Copier après la connexion

Ici, nous définissons une route '/download' pour une requête GET et la pointons vers la méthode de téléchargement du contrôleur DownloadController.

【Étape 2 : Créer un contrôleur】

Ensuite, nous devons créer un contrôleur pour gérer la logique de téléchargement de fichiers. Exécutez la commande suivante dans le terminal pour générer DownloadController :

php artisan make:controller DownloadController
Copier après la connexion

Ensuite, recherchez et ouvrez le fichier DownloadController.php dans le répertoire app/Http/Controllers, et ajoutez le code suivant :

public function download()
{
    $filePath = public_path('storage/files/example_file.pdf');
    $fileName = 'example_file.pdf';

    return response()->download($filePath, $fileName);
}
Copier après la connexion

La méthode de téléchargement ici définit d'abord le chemin du fichier. $filePath et nom du fichier $fileName. Utilisez ensuite la fonction réponse() de Laravel, combinée à la méthode de téléchargement, pour renvoyer le fichier à l'utilisateur pour téléchargement.

[Étape 3 : Implémenter le téléchargement de la reprise du point d'arrêt]

Par défaut, le téléchargement de fichiers de Laravel ne prend pas en charge le téléchargement de la reprise du point d'arrêt. Afin d'implémenter cette fonction, nous devons effectuer une configuration supplémentaire. Ouvrez le fichier DownloadController.php et ajoutez le code suivant :

public function download()
{
    $filePath = public_path('storage/files/example_file.pdf');
    $fileName = 'example_file.pdf';

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

    return response()->file($filePath, $headers);
}
Copier après la connexion

Nous utilisons maintenant la méthode file de la fonction réponse() pour implémenter le téléchargement de fichiers. Dans le même temps, nous avons également ajouté un tableau d'en-têtes et défini l'en-tête « Content-Type » pour garantir que le fichier est téléchargé avec le type MIME correct.

[Étape 4 : Télécharger des fichiers à l'aide du transfert de reprise de point d'arrêt]

Si vous souhaitez implémenter la fonction de téléchargement de reprise de point d'arrêt, vous devrez peut-être utiliser une bibliothèque tierce pour nous aider à la terminer. Dans Laravel, nous pouvons utiliser la bibliothèque GuzzleHttp pour réaliser cette fonctionnalité. Exécutez d'abord la commande suivante dans le terminal pour installer GuzzleHttp :

composer require guzzlehttp/guzzle
Copier après la connexion

Ajoutez ensuite le code suivant dans le fichier DownloadController.php :

use GuzzleHttpClient;

public function download()
{
    $url = 'http://example.com/example_file.pdf';
    $fileName = 'example_file.pdf';

    $client = new Client(['sink' => public_path('storage/files/' . $fileName)]);
    $client->request('GET', $url, ['headers' => ['Range' => 'bytes=0-']]);

    return response()->download(public_path('storage/files/' . $fileName), $fileName);
}
Copier après la connexion

Dans cet exemple, nous définissons d'abord l'URL et le nom du fichier. Ensuite, nous créons une instance de GuzzleHttpClient et spécifions le chemin de sauvegarde du fichier téléchargé via l'option « puits ». Ensuite, en appelant la méthode de requête, envoyez une requête avec l'en-tête « Range » pour obtenir la reprise de la transmission au point d'arrêt. Enfin, nous renvoyons le fichier téléchargé à l'utilisateur en utilisant la méthode réponse()->download().

【Résumé】

Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction d'utilisation du framework Laravel pour réaliser le téléchargement de fichiers et le téléchargement de reprise du point d'arrêt. Nous avons implémenté la fonction de reprise du point d'arrêt en créant des routes, en écrivant la logique du contrôleur et en utilisant la bibliothèque GuzzleHttp. J'espère que cet article pourra vous aider à comprendre comment implémenter le téléchargement de fichiers et la reprise des points d'arrêt dans Laravel.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal