2011-02-10 3 views
1

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

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

Вот как связать отображается с PHP,

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

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

+0

Правильный ли тип mime для настройки файлов KML на сервере? Если нет, в браузер будет отправлен неправильный тип mime, и вы не увидите ожидаемого поведения. – Oded

+0

@Описанное приложение/vnd.google-earth.kml + xml отсутствует в моем файле mimes.type на сервере, но он находится в моем локальном поле, поэтому я думаю, что это проблема. –

+0

Звучит вероятно - добавьте его в свой apache и посмотреть, что произойдет. – Oded

ответ

1

Благодарим вас за вход ваших ребят, но Одед ответил на вопрос о типах мим.

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

application/vnd.google-earth.kml+xml 

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

1

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

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

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

Это должно быть сделано.

Смежные вопросы