.airファイルが.zipでダウンロードされてしまう!?

4月 30, 2009 · Posted in AIR, Apache, Flex, PHP 
Post to Google Buzz
このエントリーをはてなブックマークに追加

久々の更新です!
最近仕事が忙しく、更新が滞ってました。。。

今回は、IEで.airファイルをダウンロードすると、.zip形式でダウンロードされてしまう問題についてまとめました。

通常、AIRランタイムがインストールされていれば、.airにインストーラーが関連付き、インストール、もしくは、バージョンアップをすることができますが、サーバーの設定によっては、InternetExplorerでダウンロードした場合に、zip形式でダウンロードされてしまう現象がおきます。

もともと.airファイル自体、中身はzip形式と同じなので、ブラウザが中身を勝手に判断して、zip形式としてダウンロードを始めてしまうようです。

このまま配布してしまうと、InternetExplorerでダウンロードした人は、何もわからずzipファイルを解凍して、ファイルの中身が見れてしまいますので、なんとしても対策をしたいところ。

見つけた対策方法は2つ。
以下にまとめました。

  • サーバーの設定
  • この現象が起きるサーバーは、サーバーがairという拡張子を知らないため起きているので、Apacheの設定に次の設定を加えてあげる必要があります。
    AddType application/vnd.adobe.air-application-installer-package+zip .air

  • phpを介してダウンロード
  • phpに以下のコードを記述して、HTMLのダウンロード先をphpに設定してあげます。

    <?
    $filename = "foo.air";
    header("Content-Type: {application/vnd.adobe.air-application-installer-package+zip}");
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    readfile($filename);
    ?>

レンタルサーバーなどで、サーバーの設定がいじれない場合は1つ目の方法は無理かもしれませんので、状況によって使い分けると良いと思います。

参考
http://blog.makotokw.com/2008/03/27/airzipphp/
http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403153&sliceId=1

Comments

Leave a Reply