PHPでは、クライアントに送信されたバイト数を取得できますか?たとえば、10 MBのファイルを出力している場合、10 MBがすべてクライアントに送信されたかどうかを調べたり、クライアントが途中で転送を中断したかどうかを調べる方法はありますか?私はApacheがこれを後でログに記録することを知っていますが、私はPHPでデータにアクセスしたいと思います。PHP - HTTP経由で送信されたバイト数を確認する
6
A
答えて
13
ignore_user_abort
とconnection_abort
の機能を見てください。
11
は、ここで私は(おかげでガンボを)やってしまったものです:
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);
関連する問題
- 1. TCPソケット経由でバイト[]を送受信
- 2. HTTPS経由でHTTP経由でクッキーを送信する
- 3. FileMaker Pro経由でHTTP POSTを送信
- 4. NetworkStream経由で送信される最小保証バイト
- 5. 確認リンクが送信されても確認リンクが送信されないPHPメールが送信される
- 6. httpプロキシ経由でメールを送信
- 7. HTTP経由で送信されたプロパティを無視する方法
- 8. HTTP POST経由でスケジュールされたメッセージを送信するには?
- 9. AndroidでBluetooth経由で文字列(バイト)を送信する
- 10. PHP:フォーム経由でsession_id()を送信
- 11. OutlookタスクをPHP経由で送信
- 12. PHP経由でSMSテキストメッセージを送信
- 13. 確認メールを送信する理由
- 14. DKIM3でPHP経由で送信されたメールに署名するには?
- 15. AJAX経由で変数を送信
- 16. HTTP経由でXMLを送信する際の問題
- 17. シリアル化された配列経由でデータを送信
- 18. AngularJS - $ http投稿経由でオーディオファイルを送信するには?
- 19. PHPフォームがサーバー経由で送信されない
- 20. Wireshark - HTTP経由で送信されないJSONコンテンツをフィルタリングする方法
- 21. SerialPort経由でNode.jsでバイト(0xFF)を送信
- 22. perlとJavaの間でソケット経由でバイト配列を送信
- 23. C#でシリアルポート経由で64バイトのパケットを送信
- 24. 私はlibshout2経由でicecastに送信するバイト(ストリーム)に正確に何を入れるべきですか
- 25. SMSがAndroidでIMS経由で送信されたかどうか確認できますか?
- 26. SMTP経由で送信された2つの電子メール
- 27. HTTP経由でバイナリ投稿データを送信するには?
- 28. ポート80経由でHTTPコマンドを送信する方法
- 29. HTTP経由でFirebase通知を送信する方法
- 30. Web-Stomp Webソケット経由でRabbitMQに送信されたメッセージのステータスを確認します
あなたがそのようなプログレスバーか何かを作りたいですか? – Natrium
ファイルを完全にダウンロードしたものとしてマークし、リストから削除したかっただけです。問題はfile_get_contents()でしたが、ユーザーの中断をキャッチしません。 fread()を使ってループスルーすれば、それをキャッチして、ftell()を使っておおよそのバイト数を知ることができます。 (私が自分でそれを理解し終わったときに質問を投稿して申し訳ありません) – Jay