6

PHPで、クライアントに送信されたバイト数のカウントを取得することは可能ですか?たとえば、10 MBのファイルを出力している場合、10 MBがすべてクライアントに送信されたかどうか、またはクライアントが転送を途中で中断したかどうかを確認する方法はありますか?Apacheが後でこれをログに記録することは知っていますが、PHPのデータにアクセスしたいと思います。

4

2 に答える 2

11

これが私がやったことです(Gumboに感謝します):

ignore_user_abort(true);

$handle = fopen($file_path, 'r');
while ( ! feof($handle)) {
    echo fread($handle, 4096);
    if (connection_aborted()) {
        $transfer_success = false;
        $bytes_transferred = ftell($handle);
        break;
    }
}
fclose($handle);
于 2009-10-02T06:55:10.403 に答える