[PHP-users 25920] Re: ファイルの出力中にメモリフロー

SAITO Masaru daisaito @ lares.dti.ne.jp
2005年 6月 27日 (月) 15:38:58 JST


齋藤@横浜です。
# 関連を見ずにリプライしてます。


On Mon, 27 Jun 2005 14:51:56 +0900
keijiro <icm @ pepota.com> wrote:

> こんにちは、keijiroです。

snip

> while(!feof($fp)){
> 	$buf = fgets($fp, 4096);
> 	print $buf;
> }

fgetsではなくfreadを使ってみても変わりませんか?
fgetsとfreadが内部的にどう違うのかは分かりませんが、
fgetsを拡張して、上限サイズを決めているのと、
最初からsizeを決めている関数では挙動が違う可能性があり、
もしかしたらうまくいくかもしれません。
#試してないので保証はできませんが。

<?php
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($file));
header("Content-Disposition: attachment; filename=\"".$file."\"");

  $fh = fopen($file, "r");
  while(!feof($fh)){
    echo fread($fh, 4096);
    ob_flush();
  }
  fclose($fh);
?>

-- 
SAITO Masaru <daisaito @ lares.dti.ne.jp>




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