我有一个XML文件的链接,它位于服务器上。当用户单击按钮时,必须弹出对话框将XML文件保存到本地磁盘。我确定链接到XML文件在"一个href",但浏览器打开这个文件,不保存。如果我"save link as.",一切OK。请帮我解决这个问题。
更新:服务器- IIS。XML文件是动态创建的。onClick事件我发送到js链接到我的XML文件,js POST链接到php使用ajax。如何修改我的php打开"保存对话框"保存XML文件?js:
function funk(url)
{
var ajax = getRequest();
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
...
}
}
ajax.open("POST", "/do_query.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = 'info='+url;
ajax.send(data);
}
php (do_query.php): <?php
if (isset($_POST['info']))
{
$info = $_POST['info'];
}
?>
XML文件应该与HTTP头Content-Disposition: attachment
一起提供。这告诉浏览器下载文件而不是打开它。当然,Content-Type
头也必须适当设置(application/xml
是通用XML mime类型)。如何添加HTTP标头取决于您的服务器配置:请编辑您的问题以添加一些详细信息。
在Apache .htaccess
中,是
Header set Content-Disposition attachment
最简单的方法是创建一个php文件,让这个php文件包含像
这样的内容<?php
header('Content-Type: application/xml;');
header('Content-Disposition: attachment; filename=blah.xml;');
readfile('blah.xml');
强制文件被视为下载