2011-02-10 116 views
1

我正在創建一個創建KML文件的項目(就像XML文件,但用於Google地球)。有趣的是,當我鏈接到在本地機器上運行XAMPP的新創建的文件時,該文件會自動下載,但是當我將它移動到我的Web服務器(Linux,EC2上的Fedora 8)時,鏈接只會加載KML文件在瀏覽器中就好像它是一個HTML文件。下載KML文件,而不是在瀏覽器中查看

如何強制它下載文件而不是在瀏覽器中查看它?

這裏的顯示用PHP如何鏈接,

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

任何意見將幫助,謝謝!

+0

在服務器上設置KML文件的正確MIME類型?如果不是,則會向瀏覽器發送不正確的MIME類型,您可能看不到預期的行爲。 – Oded 2011-02-10 20:17:19

回答

1

謝謝你們家的意見,但Oded有關於mime類型的答案。

在服務器上有一個名爲它不包含KML文件的MIME類型mime.types文件,我在

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

這應該這樣做。

相關問題