[PHP-users 10905] Re: ファイルのダウンロードについて、たまに上手く動作してくれない。

Moriyoshi Koizumi php-users@php.gr.jp
Thu, 17 Oct 2002 03:27:23 +0900


小泉です。

まずはお使いの php のバージョン、
問題が発生した時のファイルサイズやファイルの種類、ファイル名
を書いたほうが、問題解決してくれる方の現れる確率が高くなります。

たとえば、

・ファイルサイズが極端に大きいとダメ → php のバグの可能性?
・ファイル名に日本語を使っていて、「予」「能」「暴」などのいわゆるNG文字が
  含まれているとダメ → IE のバグの可能性?

のように見当がつくからです。

辻 靖 <yasushi_tsuji@nifty.com> wrote:

> はじめまして、辻と申します。
> 
> ファイルのダウンロードについて、たまに上手く動作してくれない。
> 
> 色々と関連HPや過去ログ等を調べたのですが、該当する様なものが見つからなかった
> ので、この問題を解決策をご教示願い致します。
> (調べかたが悪いかもしれません。似たようなものはいっぱいあったのですが)
> 
> 
> ■仕様
> クライアントアプリを動かす為のファイルをWEBからダウンロードさせる。
> 
> 
> ■現象
> 現象が二つありまして
> 
> (1).
> たまに、ダウンロードのパネルが開かずページ移動し真っ白い画面が表示される。
> ページのソース表示にて確認すると中身は空っぽ。
> 
> (2).
> たまに、ダウンロードするファイルが、ダウンロードさせるPHPファイル名となる。
> ダウンしても空っぽ。
> 
> 
> どちらも、たまに発生します。
> 大概は上手くいくのですが、一発目で発生する場合もあります。
> 確認したIEバージョンは
> IE4.0/IE5.0/IE5.01SP2/IE5.5/IE5.5SP2/IE6.0/IE6.0SP1
> なお、キャッシュもクリアしてテストしています。
> 
> この様な不可解な現象に悩んでおります。
> 皆さんのお知恵を拝借させてください。宜しくお願い致します。
> 
> 
> 
> ■ソース
> download.php ファイル選択のソース
> download_file.php 実際にファイルをダウンさせるソース
> 
> 
> 以下は、download_file.phpです。
> 
> $prmFILE:ファイル名
> $prmSIZE:ファイルサイズ
> 
> 
> // バイナリファイルのダウンロード時
> (ウィンドズで作成したバイナリをFTPにてアップ)
> header ("Content-Disposition: attachment; filename=" . $prmFILE);
> header ("Content-type: application/octet-stream");
> header ("Content-Transfer-Encoding: binary");
> header ("Content-length: " . $prmSIZE);
> readfile ($prmFILE);
> 
> 
> // テキストタイプ(CSVファイルは省く)のダウンロード指定時
> header ("Content-Disposition: attachment; filename=" . $prmFILE);
> header ("Content-type: application/octet-stream");
> header ("Content-length: " . $prmSIZE);
> readfile ($prmFILE);
> 
> 
> // テキストタイプ(CSVファイル)のダウンロード指定時
> header ("Content-Disposition: attachment; filename=" . $prmFILE);
> header ("Content-type: application/x-csv");
> 
> header ("Content-length: " . $prmSIZE);
> readfile ($prmFILE);
> 
> 
> 尚、IE5.5以下では
> header ("Content-Disposition: inline; filename=" . $prmFILE);を
> header ("Content-Disposition: attachment; filename=" . $prmFILE);
> に入れ替えてます。
> (ダウンロードするファイルが正しく表示されない場合がある為)
> 
> 
> また、「Content-Disposition: Attachment」が動作しないとあるようなので、
> 回避策として、Internet Explorer 5.5以下では、存在しない ContentType を
> 下記の様に設定します。
> header ("Content-type: application/octet-stream");を
> header ("Content-type: application/octet-stream-dummy");
> に入れ替えてます。
> 
> 
> 以上です。皆さん宜しくお願い致します。
> 
> 
> -----------------------------------------------------------
> 株式会社うるうるネット
> 辻 靖
> ytsuji@uruuru.net
> 
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users