Doug Molineux
Doug Molineux

Reputation: 12431

Download KML File Instead of View in Browser

I am working on a project which creates a KML File (just like an XML file, but used for Google Earth). Whats interesting is when I link to the newly created file, on my local machine, running XAMPP, the file is downloaded automatically, however when I move it to my web server (Linux, Fedora 8 on EC2) the link just loads the KML file in the browser as if it was an HTML file.

How can I force it to download the file instead of viewing it in the browser?

Here's how to link is displayed with PHP,

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

Any advice would help, thanks!

Upvotes: 2

Views: 3470

Answers (3)

Doug Molineux
Doug Molineux

Reputation: 12431

Thank you for your guys' input, but Oded had the answer regarding the mime types.

On the server there's a file called mime.types which didn't contain the mime type for a KML file, I added in

application/vnd.google-earth.kml+xml

And it now downloads the file instead of loading it in the browser, by the way apache needs to be restarted once you have made the changes.

Upvotes: 2

Ares
Ares

Reputation: 5903

What you need to do is to specify the headers so the Browser knows what to do with the information that you are sending. So before you send anything to the browser you will need to specify the headers.

If you are linking to a specific file, then you will have to create a little "download manager" that will do this for you.

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

That should do it.

Upvotes: 2

James Love
James Love

Reputation: 1020

I had this a long while ago, I used a method similar to this:

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

Upvotes: 0

Related Questions