![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 293 Pomógł: 4 Dołączył: 28.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam plik zapisany w zmiennej $zdjęcie. Chciał bym wysłać go do przeglądarki z maksymalną prędkością 20KB/s. Czy jest na to jakaś metoda ? W wypadku plików statycznych, było obejście związane z fopen, wysyłanie chyba 4 kilobajtów w pętli a potem usleep na (x milisekund)... i dzięki temu mogliśmy dowolnie bawić się w limitowanie transferu... Jak sytuacja miewa się w wypadku czegoś, co nazwijmy nie parlamentarnie mam w "stringu" i nie mogę wydawać parametru który mówi ile mam odczytać i ile wysłać... ? Pozdrawiam -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chcesz odciążyć pamięć to wysyłasz po prostu plik po kawałku lub linia po linii, jeśli transfer to polecam:
http://pl.php.net/manual/pl/function.fread.php - w komentarzach kilka sposób limitowania transferu, było też na forum. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sory, ale tu http://pl.php.net/manual/pl/function.fread.php nie ma nic konkretnego, szukając po necie też znajdziesz w większości przykład
problem jest w tym że w zależności od prędkości łącza po stronie klienta, oraz to że nie znamy rozmiaru pliku który będzie przesłany powoduje to to że limit prędkości jest różny, trzeba by sprawdzać w jakiś sposób może prędkość łącza po stronie klienta i tym parametrem się sugerować Pozdr |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 32 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
sa też rozszerzenia do apacha (zakladajac ze masz dostep do ich instalacji) z tego co wiem
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie no oczywiście chodzi o np. cband, ale cały bajer w tym z aby poziomu php to regulować
jakieś komercyjne rozwiązanie http://www.12scripts.com/scripts.php?scripts.id=4 ale nie ma nigdzie skryptu zeby przetestowac jak to działa linki do tego co znalazłem: Real Bandwidth Limiting with PHP http://sixserv.org/2009/02/21/experimental...-http_download/ tu jest też spoko Bandwidth Control with pure PHP http://www.codewalkers.com/c/a/File-Manipu...-with-pure-PHP/ tyle że w każdym przypadku rozmiar pliku jest znany |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Yhm, a w czym problem użyć funkcji buforowania wyjścia?
Do tego register_tick_function i sprawdzanie wielkości -> jeśli jest większe niż rozmiar bloczku -> pauza na sekundę. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Yhm, a w czym problem użyć funkcji buforowania wyjścia? Do tego register_tick_function i sprawdzanie wielkości -> jeśli jest większe niż rozmiar bloczku -> pauza na sekundę. Buforowanie hm... ok, ale potrzebą jest aby limitowało cały ruch który dany użytkownik generuje, czyli jak pobiera dwa pliki to zadany transfer ma dzielić przez 2 itp., jak testowałem na jednym pliku to regulowałem prędkość bardziej przy pomocy usleep(); niż rozmiarem bloczku |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 07:34 |