2011-02-10 254 views
1

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

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

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

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

任何意见将帮助,谢谢!

+0

在服务器上设置KML文件的正确MIME类型?如果不是,则会向浏览器发送不正确的MIME类型,您可能看不到预期的行为。 – Oded 2011-02-10 20:17:19

回答

1

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

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

application/vnd.google-earth.kml+xml 

且将其现在下载,而不是在浏览器中加载它的文件顺便说一下,一旦你做出更改,apache需要重新启动。

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

这应该这样做。

相关问题