Czy w PHP można uzyskać liczbę bajtów przesłanych do klienta? Na przykład, jeśli wysyłam plik 10 MB, czy istnieje sposób sprawdzenia, czy wszystkie 10 MB zostały wysłane do klienta, czy też klient przerwał transfer? Wiem, że Apache zapisze to później, ale chciałbym uzyskać dostęp do danych w PHP.PHP - określić, ile bajtów wysłano przez http
6
A
Odpowiedz
13
Proszę spojrzeć na funkcję ignore_user_abort
i connection_abort
.
11
Oto, co skończyło się robi (dzięki 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);
Powiązane problemy
- 1. Wykonywanie poleceń git przez php przez http
- 2. Ile bajtów używa Oracle podczas przechowywania pojedynczego znaku?
- 3. Pobierz plik przez HTTP do tablicy bajtów w C#?
- 4. Wysyłaj tablicę bajtów przez HTTP POST w aplikacji sklepu
- 5. Wysyłanie pliku przez HTTP PUT w PHP
- 6. Obsługa bajtów w PHP
- 7. Zastrzyk bajtów php null?
- 8. Jak określić kod błędu HTTP?
- 9. Ile pamięci faktycznie używa PHP?
- 10. Określanie liczby bajtów używanych przez zmienną
- 11. Ile wynosi PlayN obsługiwany przez Google?
- 12. PHP: HTTP lub HTTPS?
- 13. Nie wysłano żądania GIF Google Analytics
- 14. Odczytaj żądanie HTTP do tablicy bajtów
- 15. Ile bajtów jest wymaganych do dokładnego wykrywania typu MIME?
- 16. ifstream :: read nie informuje, ile bajtów naprawdę czyta?
- 17. Ile bajtów pamięci każdy typ zużywa .NET (środowisko 32-bitowe)?
- 18. Jak śledzić, ile bajtów zapisano przy użyciu "std :: io :: Write"?
- 19. PHP wywoływanie innego skryptu, ale przez http (izolowanie ich).
- 20. Różnica między XML przez HTTP i SOAP przez HTTP
- 21. zmienna Empty określić w php
- 22. określić czas żądania w kanciastym $ http
- 23. Jak określić żądania Pythona http umieścić ciało?
- 24. PHP - ile dni zostało godzin od daty
- 25. Jak mogę określić, ile pamięci zajmuje aplikacja .Net?
- 26. PHP: HTTP Basic - Wylogowanie
- 27. Instruments ObjectAlloc: Objaśnienie żywych bajtów i ogólnych bajtów
- 28. Dowiedz się, ile pamięci jest używane przez obiekt w C#?
- 29. Wysyłanie nieprzetworzonych bajtów przez ZeroMQ w Pythonie
- 30. Delphi: Pętla przez bajtów w rekordzie
chcesz dokonać progressbar czy coś takiego? – Natrium
Chciałem tylko oznaczyć pliki jako całkowicie pobrane, a następnie usunąć je z listy. problemem było file_get_contents(), nie przechwytuje przerwy użytkownika. jeśli używasz fread() i pętli, możesz go złapać, a następnie użyj ftell(), aby dowiedzieć się w przybliżeniu, ile wysłanych bajtów. (przepraszam za opublikowanie pytania, kiedy skończyło się to na mnie) – Jay