Google Планета Земля, Firefox не добавляет .kml - PullRequest
0 голосов
/ 02 марта 2011

Я создаю некоторые KML-файлы на веб-сайте, и все работает хорошо во всех браузерах, кроме Firefox: предполагается, что загруженный файл должен быть someMap.kml, но Firefox просто загружает его как «someMap» без «.kml» , Поведение во всех других браузерах правильно, я что-то упустил?

Это мой код:

<?php
$kml='<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<Placemark>
            <LookAt>
                <longitude>-103.71866226196289</longitude>
                <latitude>19.241143039165962</latitude>
                <altitude>10000</altitude>
                <heading>-0.00787786711370108</heading>
                <tilt>0</tilt>
                <range>20</range>
                <altitudeMode>relativeToGround</altitudeMode>

            </LookAt>

        </Placemark>
<NetworkLink>

    <name>Posicion</name>
    <Link>
        <href>some URL</href>
        <refreshMode>onInterval</refreshMode>
        <refreshInterval>60</refreshInterval>
    </Link>
</NetworkLink>
</Document>
</kml>';


        header("Pragma: public"); 
        header("Expires: 0");       
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: private",false);
        header("Content-Type: application/vnd.google-earth.kml+xml kml; charset=ISO-8859-1");
        header("Content-Transfer-Encoding: binary");
        header("Content-Length: ".strlen($kml));
        header("Pragma: no-cache");
        header("Content-disposition: attachment; filename=someMap.kml"); 


echo $kml
?>

1 Ответ

0 голосов
/ 03 марта 2011

Удалите все остальные заголовки, кроме Content-disposition и Content-Type.

У вас есть кавычки в заголовке Content-Disposition, попробуйте заключить имя файла в кавычки. Кроме того, тип содержимого не должен иметь набор символов (по крайней мере, я так думаю) Наконец. Вы должны удалить все пробелы перед заголовками.

Попробуйте это.

 // rest of the file...
 </kml>';
 header('Content-Type: application/vnd.google-earth.kml+xml kml');
 header('Content-Disposition: attachment; filename="someMap.kml"');
 echo $kml;
 ?>
...