繁体   English   中英

如何使用AJAX(jQuery)下载从TCPDF(PHP)生成的PDF文件?

[英]How to download PDF File Generated from TCPDF (PHP) using AJAX (jQuery)?

我正在使用Yii Framework,TCPDF和jQuery来生成pdf。

pdf是通过输入表单并使用ajax提交来生成的。

pdf已创建但是当它返回到客户端时出现问题,而不是下载。

这是php代码$pdf->Output('Folder Label.pdf','D');

成功函数上的jQuery success: function(data) { window.open(data); } success: function(data) { window.open(data); }

我是从这个网站得到的。

你能帮忙吗?

如果问题是您没有获得PDF的浏览器下载对话框,那么解决方案就是这样做:

首先,重定向浏览器(使用window.location如其他答案所示)导航到应用程序中的特殊控制器操作,例如使用此URL:http: http://your.application.com/download/pdf/filename.pdf

实现URL中引用的操作,如下所示:

public function actionPdf() {
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="filename.pdf";');
    header('Content-Length: '.filesize('path/to/pdf'));
    readfile('path/to/pdf');
    Yii::app()->end();
}

这将导致浏览器下载该文件。

您需要将PDF保存到服务器上的某个位置,然后发出window.location = '/url/to/pdf-you-just-saved.pdf'; 来自您的JavaScript。 然后,用户浏览器将提示他们下载PDF文件。

在tcpdf中,只需将此参数传递给Output方法:

$pdf->Output('yourfilename.pdf', 'D'); 

就这样

不完全是,这会导致某些浏览器出错, 是设置窗口位置的正确方法。

window.location.assign( downloadUrlToPdf );

所以

  1. 发送请求以通过Ajax将pdf发送到服务器
  2. 在服务器上处理并生成pdf
  3. 在Ajax中返回调用您刚刚创建的文件的url
  4. 使用上面的代码片段打开所述文件的下载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM