加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax文件下载使用Jquery,PHP

发布时间:2020-12-16 03:10:27 所属栏目:百科 来源:网络整理
导读:我想使用ajax功能下载,用户将点击下载链接(使用ajax和$ _GET)访问一个PHP文件,该文件将处理发送的$ _GET变量并访问正确的文件进行下载。 我有几个PHP脚本来处理$ _GET变量的处理工作,但是当使用Ajax进行访问时,它们停止工作。 Ajax / PHP代码im使用如下
我想使用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 ");

希望这可以帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读