当前位置: 首页 > 面试题库 >

使用Jquery,PHP下载Ajax文件

滕祯
2023-03-14
问题内容

我想使用ajax功能进行下载,从而用户将单击下载链接,该链接将(使用ajax和$ _GET)访问一个PHP文件,该PHP文件将处理发送的$
_GET变量并访问正确的文件进行下载。

我有一些PHP脚本来处理$ _GET变量的处理,这些变量可以单独工作,但是使用Ajax访问时,它们将停止工作。

我正在使用的Ajax / PHP代码如下:

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]."');
}

请仔细阅读我的代码,帮助我找到我做错了什么。

谢谢


问题答案:

我认为问题在于您正在尝试将文件结果加载到#downloadmsg中,这将不起作用,因为.load()仅将结果加载为HTML
…而不是二进制数据或其他编码。

一种可行的方法是在HTML中创建隐藏的iframe,如下所示:

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

然后,将iframe的attr设置为您的查询字符串:

$("#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 ");

希望这可以帮助!



 类似资料:
  • 问题内容: 我想下载一个jQueryajax响应的pdf文件。Ajax响应包含pdf文件数据。。我的代码在下面给出,但是我总是得到一个空白的pdf。 问题答案: jQuery使用AJAX请求加载二进制数据时存在一些问题,因为它尚未实现某些HTML5 XHRv2功能 鉴于此,您拥有以下两种解决方案之一: 第一个解决方案是放弃JQuery并使用XMLHTTPRequest 与本地HTMLHTTPReq

  • 问题内容: 所以我知道有很多类似的帖子,但是我认为这足以满足自己的疑问: 我正在用PHP和jQuery构建XLS导出器。我正在尝试使用jQuery发布一个数组(我相信它与GET查询字符串一样长),并用它在我的服务器上生成XLS文件,然后用户可以下载该文件。 过去,我使用隐藏的iframe来完成此操作,但是由于它们只是重定向到url,因此这要求我使用GET,这使我感到紧张。 我的问题是:如果这些文件

  • 问题内容: 我正在尝试使用jQuery AJAX下载二进制音频文件。 通常我只会发出这样的命令: 但是,最近我们的服务器等待时间太长,无法响应,并且我收到了令人讨厌的网关超时消息。 有人建议我改用jQuery AJAX,从那时起我就可以更好地控制超时了。 这是到目前为止我玩过的代码: 当我省略“ dataType”时,二进制文件的传输量大约是服务器上实际文件传输量的三倍。但是,当我使dataTyp

  • 问题内容: 我的问题: 我有index.html: 是这样的: 问题很简单。 当我按下按钮时,我想动态加载内容,而无需刷新。 提前致谢!请发表评论以进行任何必要的澄清。 编辑,更详细的解释: 我不确定自己是否很清楚(或者我可能不了解我缺乏技术技能的答案),所以我再说一遍。(改写) 我有一个带有提交按钮的HTML,该按钮通过POST方法发送变量。 PHP文件使用此变量,并在经过一定过程后插入并更新M

  • 问题内容: 我有一个按钮,它将调用ajax函数。 这是我的ajax功能 我根据用户输入创建csv文件。创建之后,我希望它提示下载或强制下载(最好是强制)。我在php文件的末尾使用以下脚本来下载文件。如果我在单独的文件中运行此脚本,则可以正常运行。 但是,如果我在csv.php的末尾运行它,它会将file.csv的内容输出到页面中(进入ajaxDiv)而不是下载。 有没有办法强制在csv.php的末

  • 本文向大家介绍PHP 通过AJAX调用下载文件,包括了PHP 通过AJAX调用下载文件的使用技巧和注意事项,需要的朋友参考一下 使用Ajax下载文件不是一个好主意。而是应使用window.location 或 document.location。 “window.location”具有以下特点- 需要启用JavaScript 它不需要PHP。 它有助于显示站点的内容,并在几秒钟后重定向用户。 重定