[PHP-users 35492] ファイルダウンロードの不具合について
kimiya.kato
kimiya.kato @ atika.co.jp
2011年 2月 20日 (日) 13:57:36 JST
お世話になっております。
PHP5で実装したファイルダウンロードプログラムで不具合が発生しました。
DMZに配置されているWebサーバに対して、LAN側より外部Proxy経由でアクセスし、
ダウンロードを試みたところ不具合が発生しました。
LAN側にある2台のクライアントよりダウンロードを行いましたが、1台目のクライアント
がダウンロード中の状態で、2台目のクライアントでダウンロードを開始すると、1台目
のダウンロードが途中で止まってしまう現象が発生しました。
PHPプログラムは、SSLアクセス(https://xxx.xxx.xxx.xxx/xxxxx)により動かしています。
PHPプログラム側で出力しているログから、以下のことが分かっています。
・LAN側からアクセスした場合は、すべてのクライアントのIPアドレスが、同じIPアドレス
に変換されている。(NAT変換されていると思われます。)
・セッションIDは、クライアントごとに違う。(セッションIDの変換はされていない。)
なお、Webサーバは自社にて、指定されているIPアドレスにて構築しましたが、ルータ、
ファイアウォールなどのネットワーク機器、LAN内のPCなど、その他のことについては、
一切タッチしておらず具体的なことは分かっていません。
何が原因で、上記のような現象となっているのか、ご教示いただきたく書き込みをさせて
いただきました。
(PHPとは関係ないことが原因かもしれませんが。。。)
WAN側から2台のクライアントよりダウンロードを行った場合は、上記のような現象は発生
せず、2台とも正常にダウンロードできます。
なお、WAN側からダウンロードを行った場合は、Proxyは使用していません。
よろしくお願いいたします。
【Webサーバ】
OS:CentOS 5.5
Apache:2.2.16
PHP:5.2.14
【PHPダウンロードプログラム】
header("Cache-Control: public");
header("Pragma: public");
header("Content-Disposition: attachment; filename=\"". mb_convert_encoding( basename($path_file),"SJIS-win","UTF-8")."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
if (!readfile($path_file)) {
die("Cannot read the file(".$path_file.")");
}
PHP-users メーリングリストの案内