Maison  >  Article  >  développement back-end  >  Cliquez directement sur PHP pour utiliser la méthode de publication ajax pour télécharger un exemple simple de fichier Excel

Cliquez directement sur PHP pour utiliser la méthode de publication ajax pour télécharger un exemple simple de fichier Excel

coldplay.xixi
coldplay.xixiavant
2020-08-06 16:20:203360parcourir

Cliquez directement sur PHP pour utiliser la méthode de publication ajax pour télécharger un exemple simple de fichier Excel

L'exemple de cet article décrit comment PHP utilise la méthode de publication ajax pour télécharger des fichiers Excel. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Exigences du projet, le front-end initie une requête ajax, le back-end génère Excel et le télécharge, et en même temps, les informations de vérification du jeton doit être inclus dans l'en-tête. Après avoir fait référence à de nombreux articles, enfin La mise en œuvre est la suivante :

Recommandations d'apprentissage associées : programmation php (vidéo)

Le backend PHP utilise base64 :

$filename = 'demo.xlsx';
$objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel2007');
ob_start();
$objWriter->save("php://output");
$xlsData = ob_get_contents();
ob_end_clean();
return Api::success(['filename' => $filename, 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)]);

Front-end JS :

$('.download').click(function(){
    var url = "http://xxxx.com/group/bi/export";
    var params = {
      from_date: '2017-09-01',
      to_date: '2017-09-08',
      group_id: 1
    };
    $.ajax({
      type:'POST',
      url: url,
      data: params,
      beforeSend: function(request) {
        request.setRequestHeader("Authorization", "token信息,验证身份");
      },
      success: function(redata) {
        // 创建a标签,设置属性,并触发点击下载
        var $a = $("<a>");
        $a.attr("href", redata.data.file);
        $a.attr("download", redata.data.filename);
        $("body").append($a);
        $a[0].click();
        $a.remove();
      }
    });
});

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer