请帮帮我。我的错误在哪里?我在IIS服务器上有很多XML文件。单击按钮链接到XML后,进入JS文件。JS将链接发送到PHP文件。PHP必须显示保存对话框来保存此链接。请参见代码:
JS:
function showAl(url)
{
alert(url);
var ajax = getRequest();
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
...
}
}
ajax.open("POST", "/do_query.php", true);
var data = 'info='+url;
ajax.send(data);
}
PHP:
<?php
if (isset($_POST['info']))
{
$info = $_POST['info'];
header('Content-Type: application/xml;');
header('Content-Disposition: attachment; filename=file.xml;');
readfile(str_replace(" ", "%20", $info), false);
}
?>
提前感谢!
发布于 2013-04-17 00:05:51
下载文件的三种简单方法:
使用JavaScript
do_query.php
):使用链接下载
AJAX的问题是它在当前(HTML)页面上运行。它可以操作页面HTML或重定向到其他位置,但不能发送自定义HTTP响应。
发布于 2013-04-16 23:58:44
当您使用AJAX时,您不能提示用户保存文件,您需要将浏览器窗口指向要下载的文件的URL。这也意味着您需要使用GET方法而不是POST方法来传输文件。
试试这个:
JS:
function showAl(url)
{
window.location.href = '/do_query.php?info=' + url;
}
PHP:
if (isset($_GET['info']))
{
$info = $_GET['info'];
// ...
这将提示用户下载该文件。
https://stackoverflow.com/questions/16041355
复制相似问题