Maison  >  Article  >  développement back-end  >  Exemple de code pour implémenter la fonction de téléchargement de fichiers à l'aide du framework Laravel

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

黄舟
黄舟original
2017-09-15 09:35:142822parcourir

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);

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');
  }

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()
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;
  }
}
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!

Déclaration:
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