Ajax文件下载使用Jquery,PHP

前端之家收集整理的这篇文章主要介绍了Ajax文件下载使用Jquery,PHP前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用ajax功能下载,用户将点击下载链接(使用ajax和$ _GET)访问一个PHP文件,该文件将处理发送的$ _GET变量并访问正确的文件进行下载。

我有几个PHP脚本来处理$ _GET变量的处理工作,但是当使用Ajax进行访问时,它们停止工作。

Ajax / PHP代码im使用如下:

function ajaxDown(){
$('#downloadmsg').html(
    '<img src=\"media/images/ajaxloader.gif\" width=\"128\" height=\"15\">');
$('#downloadmsg').load(
'media/downloads/downManager.PHP?file=".$filequery['filename']."&ftype=".$downex[1]."');
}

请查看我的代码,并帮助我找到我做错了什么。

感谢名单

我认为问题是你正在尝试加载一个文件结果INTO #downloadmsg,这不会工作,因为.load()只会加载结果作为HTML …不是二进制数据或其他编码。

一种可能起作用的方法是在HTML中创建一个隐藏的iframe,如下所示:

<iframe id="secretIFrame" src="" style="display:none; visibility:hidden;"></iframe>

然后,将iframe的attr设置为querystring:

$("#secretIFrame").attr("src","myPHPscript.PHP?option1=apple&option2=orange");

然后使用PHP头来强制下载源码(这里是一个使用八位字节流的脚本中的一个导出器头文件的示例):

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate,post-check=0,pre-check=0"); 
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=data.xls ");
header("Content-Transfer-Encoding: binary ");

希望这可以帮助!

猜你在找的Ajax相关文章