Maison  >  Article  >  Java  >  Comment puis-je télécharger et ouvrir des fichiers PDF générés par une classe d'action à l'aide d'Ajax ?

Comment puis-je télécharger et ouvrir des fichiers PDF générés par une classe d'action à l'aide d'Ajax ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 20:20:30541parcourir

How Can I Download and Open PDF Files Generated by an Action Class Using Ajax?

Récupérer et ouvrir des fichiers PDF à l'aide d'Ajax

Pour télécharger et afficher un fichier PDF généré par une classe d'action via Ajax, l'approche suivante peut être utilisé :

Dans la classe d'action, assurez-vous que le type de contenu est correctement défini sur "application/pdf" et que le nom de fichier souhaité est spécifié dans l'attribut "contentDisposition" :

<code class="java">public String execute() {
    ...
    ...
    File report = signedPdfExporter.generateReport(xyzData, props);

    inputStream = new FileInputStream(report);
    contentDisposition = "attachment=\"" + report.getName() + "\"";
    contentType = "application/pdf";
    return SUCCESS;
}</code>

Dans l'appel Ajax, configurez la requête pour gérer efficacement la réponse du flux :

<code class="javascript">$.ajax({
    type: "POST",
    url: url,
    data: wireIdList,
    cache: false,
    success: function(data) {
        // Convert the response data to a Blob object
        var blob = new Blob([data]);
        // Create a link element to trigger the download
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        // Set the desired file name for download
        link.download = "filename_with_extension.pdf";
        // Simulate a click event to initiate the download
        link.click();
        // Remove the Blob URL once the download completes
        window.URL.revokeObjectURL(blob);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert('Error occurred while opening fax template' + getAjaxErrorString(textStatus, errorThrown));
    }
});</code>

En incorporant cette approche, le fichier PDF généré par la classe d'action peut être téléchargé et ouvert avec succès à l'aide d'Ajax.

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