Retrieve and Open PDF Files Using Ajax
To download and display a PDF file generated by an action class via Ajax, the following approach can be utilized:
In the action class, ensure that the content type is correctly set as "application/pdf" and that the desired file name is specified in the "contentDisposition" attribute:
<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>
In the Ajax call, configure the request to handle the stream response effectively:
<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>
By incorporating this approach, the PDF file generated by the action class can be downloaded and opened successfully using Ajax.
The above is the detailed content of How Can I Download and Open PDF Files Generated by an Action Class Using Ajax?. For more information, please follow other related articles on the PHP Chinese website!