如何点击按钮从服务器下载XML文件


How to download XML file from server on click button?

我有一个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');

强制文件被视为下载