Php 使用Jquery从字符串下载pdf文件
全部, 我有一个用Zend框架和MVC编写的PHP5应用程序。在我的主页上,我想加入下载动态生成的pdf文件的功能。这样做的方式是:Php 使用Jquery从字符串下载pdf文件,php,javascript,ajax,model-view-controller,zend-framework,Php,Javascript,Ajax,Model View Controller,Zend Framework,全部, 我有一个用Zend框架和MVC编写的PHP5应用程序。在我的主页上,我想加入下载动态生成的pdf文件的功能。这样做的方式是: 用户点击“下载文件”链接 单击时,PHP控制器将调用AJAX,它获取表单数据,生成pdf并将其作为字符串返回 我的javascript函数现在有pdf字符串 如何向用户显示“打开/保存”对话框以从javascript下载pdf文件 我有以下代码: <script type="text/Javascript"> $('#dlcontent').cl
<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>
$('#dlcontent')。单击(函数(e){
$.ajax({
键入:“POST”,
url:“/downloads/dlpolicies”,
数据:$(“#frmMyContent”).serialize(),
cache:false,
数据类型:“html”,
成功:函数(html_输入){
alert(html_input);//这是一个字符串形式的pdf文件。
//ToDo:使用此字符串打开/保存pdf文件对话框。。
}
});
});
谢谢
最简单的方法是打开一个包含URL到pdf字符串的新窗口。最简单的方法是打开一个包含URL到pdf字符串的新窗口。将一个元素添加到您希望链接的页面中。它可以是一个span或div或表中的一个单元格,也可以是您想要的任何内容。给它一个唯一的ID。然后使用jQuery设置该元素的html。我在这里把它称为
somepageelement
$('#dlcontent').click(function(e) {
$.ajax({
type: 'POST',
url: "/downloads/dlpolicies",
data: $("#frmMyContent").serialize(),
cache: false,
dataType: "html",
success: function(html_input){
$('#somepageelement').html('<a href="' + html_input + '">Click here to download the pdf</a>');
}
});
});
$('#dlcontent')。单击(函数(e){
$.ajax({
键入:“POST”,
url:“/downloads/dlpolicies”,
数据:$(“#frmMyContent”).serialize(),
cache:false,
数据类型:“html”,
成功:函数(html_输入){
$('#somepageelement').html('');
}
});
});
将一个元素添加到您希望链接的页面中。它可以是一个span或div或表中的一个单元格,也可以是您想要的任何内容。给它一个唯一的ID。然后使用jQuery设置该元素的html。我在这里把它称为somepageelement
$('#dlcontent').click(function(e) {
$.ajax({
type: 'POST',
url: "/downloads/dlpolicies",
data: $("#frmMyContent").serialize(),
cache: false,
dataType: "html",
success: function(html_input){
$('#somepageelement').html('<a href="' + html_input + '">Click here to download the pdf</a>');
}
});
});
$('#dlcontent')。单击(函数(e){
$.ajax({
键入:“POST”,
url:“/downloads/dlpolicies”,
数据:$(“#frmMyContent”).serialize(),
cache:false,
数据类型:“html”,
成功:函数(html_输入){
$('#somepageelement').html('');
}
});
});
我会尽量保持简单。只需使用target=“\u blank”
对表单进行sumbit,然后让PHP强制下载文件
HTML代码
<script type="text/Javascript">
$('#dlcontent').click(function(e) {
e.preventDefault();
$("#frmMyContent").submit();
});
</script>
<form id="formMyContent" action="/downloads/dlpolicies" target="_blank" ... >
...
</form>
从这里得到这个:
我会尽量保持简单。只需使用
target=“\u blank”
对表单进行sumbit,然后让PHP强制下载文件
HTML代码
<script type="text/Javascript">
$('#dlcontent').click(function(e) {
e.preventDefault();
$("#frmMyContent").submit();
});
</script>
<form id="formMyContent" action="/downloads/dlpolicies" target="_blank" ... >
...
</form>
从这里得到这个:
问题是“#dlcontent”本身就是下载pdf文件的链接。我可以通过弹出窗口来做吗?有了这个,我不必点击2个链接来下载文件。@vincent啊,好的,很抱歉误解了。在这种情况下,我不知道为什么需要Ajax来完成这项工作。我会有一个表单,它发布到生成pdf的页面,并在表单上指定
target=“\u new”
,以便在新窗口中打开。如果您愿意,您可以通过点击#dlcontent
提交表单。问题是“#dlcontent”本身就是下载pdf文件的链接。我可以通过弹出窗口来做吗?有了这个,我不必点击2个链接来下载文件。@vincent啊,好的,很抱歉误解了。在这种情况下,我不知道为什么需要Ajax来完成这项工作。我会有一个表单,它发布到生成pdf的页面,并在表单上指定target=“\u new”
,以便在新窗口中打开。如果你愿意,你可以这样做,点击#dlcontent
提交表单。嗯。我如何将pdf字符串强制转换为result.pdf?内容类型应该是“application/pdf”,因为它在很久以前是标准化的。嗯。我如何将pdf字符串强制转换为result.pdf?内容类型应该是“application/pdf”,因为它在很久以前是标准化的。