开发者

php: readfile_chunked not flushing last 2830 bytes of 29353KB file

I am using a variation of the familiar readfile_chunked in attempt of download for larger files:

    function readfile_chunked($filename)
    {
         开发者_运维问答   $chunk_size = 1*(1024*1024); // how many bytes per chunk
            $buffer = '';
            $handle = fopen($filename, 'rb');
            if ($handle === false)
            {
                    return false;
            }

            while (!feof($handle))
            {
                    $buffer = fread($handle, $chunk_size);
                    print $buffer;
                    ob_flush();
                    flush();
                    sleep(1);
            }
            $status = fclose($handle);
            return $status;
    }

smaller files work fine, but this larger file is missing the last 2830 bytes.


i found out the issue to this. under the php.ini file, make sure you set implicit_flushing to On. i still have the explicit flush code after each line outputted however.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜