【问题标题】:Download KML File Instead of View in Browser下载 KML 文件而不是在浏览器中查看
【发布时间】:2011-02-10 20:14:48
【问题描述】:

我正在开发一个创建 KML 文件的项目(就像一个 XML 文件,但用于 Google 地球)。有趣的是,当我在本地机器上运行 XAMPP 链接到新创建的文件时,该文件会自动下载,但是当我将它移动到我的 Web 服务器(Linux、EC2 上的 Fedora 8)时,链接只会加载 KML 文件在浏览器中,就像它是一个 HTML 文件一样。

如何强制它下载文件而不是在浏览器中查看?

这里是如何用 PHP 显示链接,

echo "<a href='$currentTime.kml'><img heigth=\"15px\" width=\"13px\" src=\"images/KML_Icon.gif\" /> Download</a>";

任何建议都会有所帮助,谢谢!

【问题讨论】:

  • 服务器上 KML 文件设置的 MIME 类型是否正确?否则,将向浏览器发送不正确的 mime 类型,您可能看不到预期的行为。
  • @Oded application/vnd.google-earth.kml+xml 不在我服务器上的 mimes.type 文件中,但它在我的本地盒子上,所以我认为这是问题所在
  • 听起来很可能 - 将其添加到您的 apache 配置中,看看会发生什么。
  • 我加了,没反应,可能需要重启apache
  • 这个成功了,如果你回答我会标记为正确

标签: php download kml


【解决方案1】:

您需要做的是指定标头,以便浏览器知道如何处理您发送的信息。因此,在向浏览器发送任何内容之前,您需要指定标头。

如果您要链接到特定文件,则必须创建一个小型“下载管理器”来为您执行此操作。

<?
  header('Content-disposition: attachment; filename=the-name-you-want-them-to-see-in-their-download.pdf');
  header('Content-type: text/xml'); //Since KML files are based on XML this is probably the best Content type to send to the user.
  readfile('the-file-you-want-to-present')
?>

应该可以的。

【讨论】:

    【解决方案2】:

    感谢你们的意见,但 Oded 有关于 mime 类型的答案。

    在服务器上有一个名为 mime.types 的文件,它不包含我添加的 KML 文件的 mime 类型

    application/vnd.google-earth.kml+xml
    

    它现在下载文件而不是在浏览器中加载它,顺便说一下,一旦您进行了更改,apache 就需要重新启动。

    【讨论】:

      【解决方案3】:

      我很久以前就有这个了,我用过类似这样的方法:

      http://webdesign.about.com/od/php/ht/force_download.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-21
        • 2021-07-31
        • 1970-01-01
        • 1970-01-01
        • 2020-06-21
        • 1970-01-01
        • 2019-03-08
        • 2011-11-08
        相关资源
        最近更新 更多