下载KML文件而不是浏览器中的视图

时间:2011-02-10 20:14:48

标签: php download kml

我正在开发一个创建KML文件的项目(就像XML文件一样,但用于Google Earth)。有趣的是当我链接到新创建的文件时,在我的本地机器上运行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>";

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

3 个答案:

答案 0 :(得分:2)

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

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

<?
  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')
?>

应该这样做。

答案 1 :(得分:1)

感谢你们的帮助,但Oded得到了关于mime类型的答案。

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

中添加了
application/vnd.google-earth.kml+xml

现在它下载文件而不是将其加载到浏览器中,一旦你做了更改,就需要重新启动apache。

答案 2 :(得分:0)

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

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

相关问题