2011-02-10 18 views
1

私はKMLファイルを作成するプロジェクト(XMLファイルと同じですが、Google Earthで使用されています)に取り組んでいます。興味深いのは、ローカルマシン上で新しく作成されたファイルにリンクして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

+0

@Oded application/vnd.google-earth.kml + xmlはサーバーのmimes.typeファイルには存在しませんが、ローカルボックスにありますので、これは問題だと思います –

+0

Apacheの設定と何が起こるかを参照してください。 – Oded

答えて

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

これでいいはずです。

関連する問題