[PHP-users 22798]Re: zipファイルのダウンロードについて
Y.Matsumoto
rokubou @ msoft.co.jp
2004年 7月 26日 (月) 14:00:10 JST
まつもとです。
> 現在、PHPにてzipファイルをダウンロードさせようとしています。
> WindowsのIEでは普通にダウンロードが出来るのですが、
> MacのIEだと「処理不可能なファイルタイプ」と出て、ファイル名の
> 所が、PHPプログラム名になってしまいます。
> (ファイル名を変えてダウンロードすればちゃんと中身を見る事はできます。)
>
> Mac版IEのMIMEの設定かと思い、ファイルヘルパーの設定を見てみましたが
> 「PC ZIP Archive」と言うのが設定されていました。
>
> PHPのソースの書き方に、何か工夫がいるのでしょうか?
> 知っている方がいらしたら教えてください。
>
> header( "Content-Type: application/octet-stream" );
> header( "Content-Disposition: attachment; filename=test.zip" );
> echo readfile( "test.zip" );
HTTP1.1あたりのRFCをよんだり、MS社の開発者サイトの中で検索すると
出て来たような……
Macでは試験したことが無いですが、Windows限定でよければ。
$dlFileName = mb_convert_encoding($dlFileName, "SJIS-win", mb_detect_encoding($dlFileName));
header("Content-type: application/x-download; name=".$dlFileName);
header("Content-Disposition: attachment; filename=".$dlFileName );
header("Content-Description: zip");
こんな書き方で、何とかなります。
最初の一行は、ファイル名が日本語の場合でも、
「Windows限定」で何とかダウンロードできるようにしたものです。
ただし、他のブラウザでは全滅します。
それ以外のブラウザも、動作対象に含まれる場合は別のヘッダを送る必要が
あるので、それはそれで調べてみてください。
# どちらかというと、他のブラウザでの書き方を知りたいかも(^^;
--
Y.Matsumoto <rokubou @ msoft.co.jp>
PHP-users メーリングリストの案内