Cytat(wNogachSpisz @ 13.08.2012, 11:06:57 )

Pytanie 1.
Czy chcesz aktualizować licznik kiedy trwa pobieranie?
Przykładowo, user w chwili #1 ma pobranych 0MB, w chwili #2 99MB i właśnie kończy pobiernie pliku.
Czy chcesz mieć w chwili #2 na stronie 99MB czy przebolejesz jeśli będzie 0 MB i poczekasz z aktualizacją bazy aż pobieranie się zakończy lub przerwie.
Chce aktualizować kiedy trwa pobieranie, po to że przykładowo głupim rozwiązaniem było by jeżeli ktoś uruchomi pobieranie i anuluje a zliczy jako pełne pobranie, albo odpali 8 połączeń i mu zliczę 8 razy, albo jeszcze inaczej że pobierze 4 razy ten sam plik a zliczy tylko jako pojedyncze pobranie.
Chce na "żywo" aktualizować ile jest pobrane, jeżeli nie pełne to ma zapisać tyle ile zostało pobrane.
Cytat(Sephirus @ 13.08.2012, 08:58:05 )

Pobierając jakimś managerem typy IDM czy FDM tworzysz więcej niż jedną sesje pobierania pliku. W związku z tym do twojego pliku gdzie zapisujesz ile pobrano nadpisują się dane z różnych sesji. Manager pobiera plik częściami zatem nie rozróżniając sesji nadpisujesz ten sam plik. Przed odpaleniem pobierania ustal jakąś zmienną globalną:
a w funkcji od WRITE_FUNCTION daj:
function zapiszRozmiar($handle, $content){
file_put_contents
("pobrano_".$nazwaPliku, file_get_contents("pobrano".$nazwaPliku) + $lenght); return $lenght;
}
Ogólnie ta metoda zapisywania jest mało wydajna przez odczyt/zapis pliku przy każdorazowym pobraniu jego cząstki - zmieniłbym to po prostu na filesize() od pliku docelowego - zapisz gdzieś ile ma pobierany plik jednorazowo - może być to w pliku. Ile się aktualnie pobrało odczytasz odpalając skrypt sprawdzający wielkość pliku docelowego a dzieląc ten rozmiar przez rozmiar całego masz procent pobrania.
HTH

EDIT:
Dodatkowo zamiast strlen używaj
mb_strlen 
niestety nie zbyt to działa.. pobrałem 100 MB akceleratorem IDM, stworzyło 23 takich plików z zapisaną liczbą i suma ich wynosi: 307393
także ma to się nijak do prawdziwej wielkości 100 MB
takie wartosci miałem wypisane w plikach:
http://wklej.to/2ufNPfilesize? tak jak pisałem wyżej nie chce zliczać od razu pełnego pliku, chce wiedzieć jeżeli pobrał 30 mb, to mam mieć te 30 mb, także filesize tutaj się nie spisze.
Ma ktoś jakiś pomysł ? Na pewno jest to możliwe, ale nie mam pojęcia jak.