【问题标题】:Download link to download XML file using href in PHP在 PHP 中使用 href 下载 XML 文件的下载链接
【发布时间】:2012-06-27 10:13:16
【问题描述】:

需要一个小的基本帮助,我正在使用用户在表单中提交的参数动态创建一个 XML 文件。提交表单后,我将跳入 PHP 代码,我想在此处提供一个 href 链接以下载/显示创建的 XML 文件。

这是我的示例代码:

<?php

$outputForm = 1;   

if(isset($_POST['submit'])){
$outputForm = 0

//Function to generate XML file which works as expected, so that XML file is there
createXML($folderPath, $albumName, $dateOfEntry);

//My XML file is named as albumName.xml and stored in the folderPath as specified
echo '<a href = "' .  $folderPath . $albumName. '.xml' . '">XML FILE</a>';
}
 else{
            $outputForm = 1;
        }
        if($outputForm == 1)
        {     
       //Here follows my input form
     <?php
       }
     ?>

FYI: 
$folderPath = 'c:/htdocs/output/';
Therefore:
$folderPath . $albumName = 'c:/htdocs/output/jessi';
In this example xml file name:
jessi.xml

我可以在输出中看到 href 链接,但是当我单击它时它什么也没做。当我将光标移到“XML 文件”链接上时,我还可以看到 xml 文件的完整路径。

关于如何在 php 脚本中嵌入 href 链接以下载/显示 XML 文件的任何想法。

谢谢

【问题讨论】:

  • 改用echo '&lt;a href="' . $folderPath . $albumName . '.xml"&gt;XML FILE&lt;/a&gt;';
  • 听从了你的建议,可惜没有成功,老问题

标签: php xml


【解决方案1】:

问题是,您正在通过使用 http 协议(无论是在本地服务器还是远程)访问代码来运行代码,并且您尝试访问的文件是本地文件,并且您正在使用 File URI Scheme 访问本地 xml 文件所以,浏览器限制您访问该文件,可能是出于某种安全原因。 如果您尝试通过直接在浏览器中打开 html 文件(而不是通过从本地主机运行它)来访问文件,您将能够使用该链接访问该文件位置,浏览器不会限制您。但是你将无法执行 php 代码。

所以,您可以使用相对路径或对您的文件的引用 localhost 的相对路径,为此使用 http URI 方案,浏览器不会限制您打开本地文件。

【讨论】:

  • 感谢指出,现在我可以使用相对路径在浏览器中显示xml文件,但是如何在链接中提供下载
  • 您的意思是,您希望该 xml 文件被下载而不是显示?如果是这样,您可以在该 XML 文件中使用一个标头:Content-Disposition: attachment; filename="fname.ext" 检查w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 了解更多信息
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
相关资源
最近更新 更多