Скачать файл KML вместо просмотра в браузере - PullRequest
2 голосов
/ 10 февраля 2011

Я работаю над проектом, который создает файл KML (так же, как файл XML, но используется для Google Earth). Что интересно, когда я ссылаюсь на только что созданный файл на моем локальном компьютере, на котором выполняется XAMPP, файл загружается автоматически, однако, когда я перемещаю его на свой веб-сервер (Linux, Fedora 8 на EC2), ссылка просто загружает файл KML в браузере, как если бы это был файл HTML.

Как заставить его загрузить файл вместо просмотра в браузере?

Вот как отображается ссылка с PHP,

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

Любой совет поможет, спасибо!

Ответы [ 3 ]

2 голосов
/ 12 февраля 2011

Что вам нужно сделать, это указать заголовки, чтобы браузер знал, что делать с отправляемой вами информацией.Поэтому, прежде чем отправлять что-либо в браузер, вам нужно будет указать заголовки.

Если вы ссылаетесь на определенный файл, вам придется создать небольшой «менеджер загрузок», который сделает это за вас.

<?
  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 голос
/ 14 февраля 2011

Спасибо за вклад ваших парней, но у Одеда был ответ относительно типов пантомимы.

На сервере есть файл mime.types, который не содержит тип mime для файла KML, я добавил в

application/vnd.google-earth.kml+xml

И теперь он загружает файл, а не загружает его в браузере. Кстати, после внесения изменений необходимо перезапустить apache.

0 голосов
/ 10 февраля 2011

У меня было это давным-давно, я использовал метод, подобный этому:

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

...