php 文件下载 输出文件
我看网上有关 输出文件的
有用 readfile
有用
$fp = fopen($filepath, 'rb');
fpassthru($fp);
fclose($fp);
这都是一次性输出
但是 我还看到了一个 分段输出的 每次输出1024字节
$fp= fopen($this->path,"r");
$buffer_size = $this->buffer_size; //这个值是1024
$cur_pos = 0;
while(!feof($fp) && $file_size>$buffer_size+$cur_pos){
$buffer = fread($fp,$buffer_size);
echo $buffer;
$cur_pos += $buffer_size;
}
$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
我想问 分段输出 和 一次性输出 有啥区别呀 (不考虑断点续传的情况下)
------解决方案--------------------
撇开其他因素,显然一次读取要比分段读取所用的内存要多
------解决方案--------------------