php长传文件,使用PHP流式传输大型文件

dbd04ce26591e966fa8969721c166379.png

至尊宝的传说

尝试这样的事情(来源http://teddy.fr/2007/11/28/how-serve-big-files-through-php/):<?php

define('CHUNK_SIZE', 1024*1024); // Size (in bytes) of tiles chunk// Read a file and display its content chunk by chunkfunction 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.';}?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值