Paul
25.11.2003, 22:59:58
Witam. Mam napisany skrypt do downloadu standardowo - force download, readfile.... No i robi sie probem z tym przy wiekszych plikach poniewaz to nie obsluguje wstrzymywania.... Czy wie ktos moze jak mozna "odebrac informacje od jakiegos sciagacza (DAP, get right, flash get etc.) - od kad trza wysylac plik"??
hwao
26.11.2003, 18:53:37
Nie zabardzo rozumie oco Ci chodzi ale sprobuj zrobic licznik on line i zezeli rowna sie iles tam to (if) dajesz komunikat (echo)ble ble..
PMadej
26.11.2003, 18:58:09
Cytat
Nie zabardzo rozumie oco Ci chodzi ale sprobuj zrobic licznik on line i zezeli rowna sie iles tam to (if) dajesz komunikat (echo)ble ble..
chyba nie wiesz co piszesz ... on chce przeslac komunikat nie do usera a do programu ... wg mnie to zalezy od serwera http bardziej niz od php ...
przeciez na chipie sciagasz z http i masz opcje resume ...
a do tego to np flash podczas robienia resume wysyla zapytanie o plik sprawdza jego sume kontrolna i jesli to ten sam to sprawdza offset i zaczyna sciagac od miejsca w ktorym skonczyl
Paul
26.11.2003, 22:04:38
No mniej wiecej o cos takiego mi chodzi jak na chipie, ale moim zdaniem to jest wlasnie kwestia php:
bo tak wysyla caly plik:
[php:1:345220a370]<?php
readfile($sciezka);
?>[/php:1:345220a370]
a tak wybrany fragment:
[php:1:345220a370]<?php
$file = fopen($sciezka, 'r+');
fseek($file, $offset, SEEK_SET);
$plik = fread($file, filesize($sciezka) - $offset);
fclose($file);
echo $plik;
?>[/php:1:345220a370]
Pytanie jak wziasc wartosc zmiennej $offset , ktora jakos trzeba uzyskac z sciagacza....
Pozatym testowalem na 2 serwerach (na OmniHttpd na moim kompie i na komercyjnym na apachu) i sie nie da resumowac... dlatego wlasnie kombinuje...
spenalzo
26.11.2003, 22:07:27
Musisz pobrać od klienta miejsce w którym zostało przerwane ściąganie - ale czy to da się
PMadej
26.11.2003, 22:08:31
jesli chcesz robic to za pomoca download managera przegladarki to raczej jest to nie mozliwe bo z tego co wiem zadna nie ma opcji resume ... a flashget ma wbudowana opcje resume wiec musi z tego korzystac i php nie ma nic do tego ...
flashget komunikuje sie bezposrednio z serwerem a nie poprzez php.
Paul
26.11.2003, 22:12:06
Cytat
Musisz pobrać od klienta miejsce w którym zostało przerwane ściąganie - ale czy to da się

wlasnie - tylko jak?
spenalzo
26.11.2003, 22:19:51
Zauważyłem, że TC przy ponowieniu pobierania pliku wysyla naglowek REST xx (miejsce od ktorego kontynuować). Poza tym - czy nie szkoda zachodu? To będzie trudne, jeżeli w ogóle mozliwe.
Paul
26.11.2003, 22:44:01
A jak to odebrac?
W ogole na poczatku chyba tego calego interesu musi byc cos ala header('resume-enabled');
Pozatym szukalem w google tego i nigdzie tego nie ma....
Jednak nie takie trudne i mozliwe, tylko trzeba bylo to znajesc...

:
[php:1:a79d4b0a01]<?php
header("Accept-Ranges: bytes");
?>[/php:1:a79d4b0a01]
To rozwiazuje problem
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.