下载KML文件,而不是在浏览器中查看
问题描述:
我正在创建一个创建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>";
任何意见将帮助,谢谢!
答
谢谢你们家的意见,但Oded有关于mime类型的答案。
在服务器上有一个名为它不包含KML文件的MIME类型mime.types文件,我在
application/vnd.google-earth.kml+xml
且将其现在下载,而不是在浏览器中加载它的文件顺便说一下,一旦你做出更改,apache需要重新启动。
答
你需要做的是让浏览器知道如何处理信息办指定的标头你正在发送。因此,在您向浏览器发送任何内容之前,您需要指定标题。
如果你链接到一个特定的文件,那么你将不得不创建一个“下载管理器”,这将为你做到这一点。
<?
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')
?>
这应该这样做。
在服务器上设置KML文件的正确MIME类型?如果不是,则会向浏览器发送不正确的MIME类型,您可能看不到预期的行为。 – Oded 2011-02-10 20:17:19