Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik faktycznie pobranych do konca plików
Forum PHP.pl > Forum > PHP
MySQL
Wiem jak zrobic licznik, ktory zliczalby ilosc klikniec w link.

Ale jak zrobic licznik (i czy sie w ogole da, bo byc moze sie nie da), ktory zliczalby ilosc faktycznie pobranych do konca plikow? Chodzi o to, zeby nie zliczal same klikniecia bo zawsze mozna przerwac proces sciagania.

Domyslam sie, ze skrypt taki, jezeli istnieje, nie jest zbyt prosty zatem nie oczekuje ze ktos tu zaraz taki wklei (choc bylo by to bardzo mile). Ale chociaz powiedzcie od czego byscie zaczeli i jakich funkcji uzyli. Ewentualnie jezeli widzieliscie gdzies w Necie taki skrypt to prosze o padanie linka, ja w kazdym razie takiego nie znalazlem. Widzialem wiele skryptow, ktore rzekomo zliczaly sciagniete pliki ale w rzeczywistosci byly to skrypty zliczajace tylko ilosc klikniec w link dry.gif
kajzur
Hm, samo PHP nie powie Ci, czy plik był pobrany do końca.
Pilsener
Plik do użytkownika można (a może i powinno się) wysyłać porcjami (by odciążyć pamięć):
  1. <?php
  2. while(!feof($file))
  3.    {
  4.        echo fread($file,$down_rate);
  5.     }
  6. fclose($file);
  7. ?>


Lub liniami (korzystając z fgets), zatem pomysł może być taki, by zliczać te bajty lub te linie, jednak to jest do kitu - dlaczego? Bo My możemy tylko wysłać plik do przeglądarki lub podać go na tacy - nie mamy wpływu na to, w jaki sposób użytkownik z tego korzysta, równie dobrze moglibyśmy spróbować sprawdzić, czy dokument HTML wysłany do użytkownika się załadował w 100% - ale my dokument wysyłamy i nie mam pewności, czy ktoś nie kliknie "stop" w momencie pobierania tego dokumentu - nie mamy możliwości sprawdzenia, co się dzieje po stronie użytkownika.

Może jeszcze AJAX'owcy się wypowiedzą, ale po stronie PHP tego nie widzę zupełnie.
p-avel
Cytat(Pilsener @ 2.04.2009, 15:04:39 ) *
Plik do użytkownika można (a może i powinno się) wysyłać porcjami (by odciążyć pamięć):
  1. <?php
  2. while(!feof($file))
  3.    {
  4.        echo fread($file,$down_rate);
  5.     }
  6. fclose($file);
  7. ?>


Lub liniami (korzystając z fgets), zatem pomysł może być taki, by zliczać te bajty lub te linie, jednak to jest do kitu - dlaczego? Bo My możemy tylko wysłać plik do przeglądarki lub podać go na tacy - nie mamy wpływu na to, w jaki sposób użytkownik z tego korzysta, równie dobrze moglibyśmy spróbować sprawdzić, czy dokument HTML wysłany do użytkownika się załadował w 100% - ale my dokument wysyłamy i nie mam pewności, czy ktoś nie kliknie "stop" w momencie pobierania tego dokumentu - nie mamy możliwości sprawdzenia, co się dzieje po stronie użytkownika.

Może jeszcze AJAX'owcy się wypowiedzą, ale po stronie PHP tego nie widzę zupełnie.


jest to możliwe jak najbardziej, do zaproponowanego kodu
  1. <?php
  2. while(!feof($file))
  3. {
  4. echo fread($file, $down_rate);
  5. }
  6. fclose($file);
  7. ?>


dodać licznik z wcześniej zadeklarowaną funkcją zapisu do bazy która będzie się wywoływać po części pobranego pliku
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.