Maison  >  Article  >  Java  >  Comment puis-je télécharger un PDF généré par une classe d'action via Ajax ?

Comment puis-je télécharger un PDF généré par une classe d'action via Ajax ?

DDD
DDDoriginal
2024-11-01 23:01:29426parcourir

How Can I Download a PDF Generated by an Action Class via Ajax?

Gestion des téléchargements PDF via Ajax : une solution

Lorsqu'un appel Ajax tente de télécharger un fichier PDF généré par une classe d'action, il peut rencontrez une erreur si le flux ne peut pas être transmis au navigateur. Pour résoudre ce problème, une approche différente est nécessaire.

Dans la classe d'action fournie, le fichier PDF est généré et son flux est configuré pour être téléchargé avec les en-têtes corrects. Cependant, l'appel Ajax doit être traité différemment pour faciliter le transfert.

Voici une solution qui a été implémentée avec succès :

<code class="javascript">$.ajax({
  url: '<URL_TO_FILE>',
  success: function(data) {
    var blob=new Blob([data]);
    var link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download="<FILENAME_TO_SAVE_WITH_EXTENSION>";
    link.click();
  }
});</code>

Dans ce code, l'appel Ajax récupère le fichier PDF flux en tant que variable de données. Il crée ensuite un objet Blob à partir des données. Un nouvel élément de lien est créé et son href est défini sur l'URL du Blob. L'attribut de téléchargement est défini sur le nom de fichier souhaité avec l'extension appropriée. Enfin, on clique sur le lien pour lancer le processus de téléchargement.

Cette approche s'est avérée efficace pour transmettre les fichiers PDF générés par la classe d'action au navigateur pour téléchargement, permettant une intégration transparente entre le serveur et le client.

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