我正在开发一个创建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>";
任何建议都会有所帮助,谢谢!
答案 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)
我很久以前就有这个,我使用了类似的方法: