Exemple de code pour implémenter la fonction de téléchargement de fichiers à l'aide du framework Laravel

黄舟
Libérer: 2023-03-16 07:44:02
original
2821 Les gens l'ont consulté

Cet article se concentre sur l'introduction de l'exemple de code de Laravel pour implémenter la fonction de téléchargement de fichiers. Les amis qui en ont besoin peuvent s'y référer

La dernière version LTS (support à long terme) de Laravel est Laravel 5.1, qui a été publié en juin 2015. Selon l'accord sur la version LTS, la prise en charge des corrections de bogues pendant deux ans prendra fin au milieu de cette année, donc une version successeur de LTS sera inévitablement publiée au milieu de cette année, ce qui est Laravel 5.5. Cet article se concentre sur la façon d'implémenter la fonction de téléchargement de fichiers dans Laravel. Veuillez vous référer à cet article. La méthode de téléchargement

peut être utilisée pour générer une réponse qui oblige le navigateur de l'utilisateur à télécharger un fichier avec un chemin spécifié. . La méthode de téléchargement accepte le nom du fichier comme deuxième paramètre de la méthode. Ce nom est le nom de fichier que l'utilisateur voit lors du téléchargement du fichier. Enfin, vous pouvez transmettre un tableau contenant des informations d'en-tête HTTP comme troisième paramètre à la méthode :


return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);
Copier après la connexion

Voici le téléchargement de fichier que j'utilise dans le projet Function.


public function downloadfile($filename)
  {
    $file = public_path().'/test.xls';
    return response()->download($file,$filename.'.xls');
  }
Copier après la connexion

Cependant, la progression n'a pas été très fluide au début. Pourquoi la fonction de téléchargement de fichiers fournie avec Laravel échoue-t-elle ? >


FatalErrorException in HandleCors.php line 18:
Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header()
Copier après la connexion
La signification générale est que la méthode header() n'a pas été définie. Après diverses explorations, nous avons trouvé une solution. Nous pouvons redéfinir l'en-tête dans la méthode handle de. CorsMiddleware. Ajoutez la méthode suivante :


class CorsMiddleware
{
  public function handle($request, Closure $next)
  {
    $response = $next($request);
    $response->headers->set('Access-Control-Allow-Origin' , '*');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
    $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
    return $response;
  }
}
Copier après la connexion
Enfin, après avoir redéfini l'en-tête, nous avons utilisé la fonction de téléchargement et avons constaté qu'elle était accessible normalement.

Résumé

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