所有,
我有一个用Zend Framework和MVC编写的PHP5应用程序。在我的主页上,我希望合并该功能以下载动态生成的pdf文件。完成的方式是:
用户单击“下载文件”链接。
在Click上,PHP控制器进行AJAX调用,该调用将获取表单数据,生成pdf并将其作为字符串返回。
我的javascript函数现在有了pdf字符串。
如何显示用户“打开/保存”对话框以从javascript下载pdf文件?
我有以下代码:
<script type="text/Javascript">
$('#dlcontent').click(function(e) {
$.ajax({
type: 'POST',
url: "/downloads/dlpolicies",
data: $("#frmMyContent").serialize(),
cache: false,
dataType: "html",
success: function(html_input){
alert(html_input); // This has the pdf file in a string.
//ToDo: Open/Save pdf file dialog using this string..
}
});
});
</script>
谢谢
最佳答案
我会尽量保持简单。只需用target="_blank"
汇总表单,然后让PHP强制下载文件。
HTML代码
<script type="text/Javascript">
$('#dlcontent').click(function(e) {
e.preventDefault();
$("#frmMyContent").submit();
});
</script>
<form id="formMyContent" action="/downloads/dlpolicies" target="_blank" ... >
...
</form>
然后,在服务器端,您需要告诉PHP将响应作为“下载”发送。
PHP代码
$this->getResponse()
->setHeader('Content-Disposition', 'attachment; filename=result.pdf')
->setHeader('Content-type', 'application/pdf');
从这里得到这个:
Zend Framework how to set headers