Laravel-excel: autoriser la modification des en-têtes http avant qu'ils ne soient envoyés avant le téléchargement

Créé le 19 déc. 2014  ·  3Commentaires  ·  Source: Maatwebsite/Laravel-Excel

Afin de faciliter l'utilisation d'un plugin jquery qui implémente une expérience de téléchargement de type ajax :
http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads

L'implémentation nécessite qu'un en-tête particulier soit renvoyé dans le cadre de la réponse côté serveur, ce qui ne peut actuellement pas être fait dans la méthode LaravelExcelWriter::_download() .

L'utilisation d'un événement avant l'envoi des en-têtes permettrait aux en-têtes par défaut d'être ajustés de manière flexible selon les besoins.

Commentaire le plus utile

1.3.0 aura la possibilité de passer un tableau d'en-têtes comme 2ème paramètre de la méthode export() :

->export('xls', [
     'Set-Cookie'  => 'fileDownload=true; path=/'
]);

Tous les 3 commentaires

1.3.0 aura la possibilité de passer un tableau d'en-têtes comme 2ème paramètre de la méthode export() :

->export('xls', [
     'Set-Cookie'  => 'fileDownload=true; path=/'
]);

Comment puis-je faire cela avec la version 3.1 ?

@andreshg112, vous pouvez ajouter le use Exportable; Concern à la classe, par exemple

class MyExportClass implements FromView
{

  use Exportable;

}

Ensuite, dans votre contrôleur, vous pouvez ajouter l'en-tête :

return (new MyExportClass())->download('myexportfile.xlsx', \Maatwebsite\Excel\Excel::XLSX, [
      'X-Vapor-Base64-Encode' => 'True'
    ]);

La documentation est ici, il m'a fallu un peu de temps pour comprendre également : https://docs.laravel-excel.com/3.1/exports/exportables.html

Cette page vous a été utile?
0 / 5 - 0 notes