前端之家收集整理的这篇文章主要介绍了
Ajax文件下载使用Jquery,PHP,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
403_0@
我想使用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 ");
希望这可以帮助!