我有链接到XML文件,它位于服务器上。当用户单击按钮时,他必须使用对话框将XML文件保存到本地磁盘。我确定在“a href”中链接到XML文件,但是浏览器打开了这个文件,而不是保存。如果我“将链接保存为......”一切正常。请帮我解决这个问题。
更新: 服务器 - 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'];
}
?>
答案 0 :(得分:7)
XML文件应该与HTTP标头Content-Disposition: attachment
一起提供。这告诉浏览器下载文件而不是打开它。当然,还必须适当地设置Content-Type
标头(application/xml
是通用的XML mime类型)。如何添加HTTP标头取决于您的服务器配置:请编辑您的问题以添加一些详细信息。
在Apache .htaccess
中,它是
Header set Content-Disposition attachment
在其他服务器中,它会发生变化。
答案 1 :(得分:0)
最简单的方法是制作一个链接到的php文件,并让该php文件包含类似
的内容<?php
header('Content-Type: application/xml;');
header('Content-Disposition: attachment; filename=blah.xml;');
readfile('blah.xml');
应该强制将文件视为下载。