Php流式,使用PHP流式处理大文件

尝试这样(源

http://teddy.fr/2007/11/28/how-serve-big-files-through-php/):

define('CHUNK_SIZE', 1024*1024); // Size (in bytes) of tiles chunk

// Read a file and display its content chunk by chunk

function readfile_chunked($filename, $retbytes = TRUE) {

$buffer = '';

$cnt = 0;

$handle = fopen($filename, 'rb');

if ($handle === false) {

return false;

}

while (!feof($handle)) {

$buffer = fread($handle, CHUNK_SIZE);

echo $buffer;

ob_flush();

flush();

if ($retbytes) {

$cnt += strlen($buffer);

}

}

$status = fclose($handle);

if ($retbytes && $status) {

return $cnt; // return num. bytes delivered like readfile() does.

}

return $status;

}

// Here goes your code for checking that the user is logged in

// ...

// ...

if ($logged_in) {

$filename = 'path/to/your/file';

$mimetype = 'mime/type';

header('Content-Type: '.$mimetype );

readfile_chunked($filename);

} else {

echo 'Tabatha says you haven\'t paid.';

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值