[PHP-users 31810] Re: ファイルのダウンロードで1Byte増えてしまう

mizuno takashi tmizu23 @ hotmail.co.jp
2007年 4月 2日 (月) 09:18:33 JST


遅くなりましたが、ご回答ありがとうございます。

色々と試行した挙句、結局ファイルの最後に空白が混入されていた為、
発生していた現象でした。。。↓

<?
中略
//ファイルのダウンロードダイアログ
header("Cache-Control: public");
header("Pragma: public");
header("Content-Disposition: attachment; filename=\"".$file_name."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
//タイムアウト時間を無効にする。20070329 mizuno
set_time_limit(0);
if (!readfile($file_name)) {
 throw new Exception ("エラー:ファイルの読み込みに失敗しました。");
}
?> ←ここに半角空白が入っていた。

上記の空白を削除したら解決されたのですが、未だファイルサイズによって
結果が異なっていたことは解せない状態です。
しかし、とりあえずOKということで追求するのはやめにしました。

>file_get_contents関数など他にも色々ダウンロードする方法があるよう
>ですので、試してみてはいかがでしょうか?
>http://search.net-newbie.com/php/function.file-get-contents.html

他にもDLの方法がいくつかあるようですので、今後試してみたいと思います。
ありがとうございました。

>From: Shima Shizuo <r6 @ chubu.interq.or.jp>
>Reply-To: PHP-users ML <php-users @ php.gr.jp>
>To: PHP-users ML <php-users @ php.gr.jp>
>Subject: [PHP-users 31764] Re:ファイルのダウンロードで1Byte増えてしまう
>Date: Fri, 30 Mar 2007 02:41:01 +0900
>
>こんにちは、嶋です。
>
> >当初、readfile関数を使用してダウンロードをしようと作成しました。
> >しかし、ダウンロードファイルのサイズが8000バイト未満の
> >ファイルをダウンロードすると、ダウンロードしたファイルの最後に空白(1Byte)
が
> >含まれてしまい、
> >結果ダウンロードファイルが1Byte増えてしまう現象が発生してしまいました。
> >そこで、readfileをやめfreadに変更したところ、LAN環境ではうまくいくよう
に
> >なったのですが、
> >インターネット環境では同じく空白が含まれてしまう場合も出てきてしまいまし
た。
> >(うまくいく場合もあります)
>
>file_get_contents関数など他にも色々ダウンロードする方法があるよう
>ですので、試してみてはいかがでしょうか?
>http://search.net-newbie.com/php/function.file-get-contents.html
>
>
>ダウンロードというのは、HTTP接続と予想しますが、ソケットを使用して
>直にアクセスしてどうなるのかも確認されてはどうでしょうか?
>
>----
>Shima Shizuo  r6 @ chubu.interq.or.jp
>
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://www.php.gr.jp/php/novice.php3

_________________________________________________________________
リア・ディゾンがメッセとコラボ!ロス旅行プレゼントなど、お楽しみの企画はこち
ら http://campaign.live.jp/dizon/ 



PHP-users メーリングリストの案内