Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja pausowania w downloadzie przez php
Forum PHP.pl > Forum > PHP
Paul
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
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
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
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
Musisz pobrać od klienta miejsce w którym zostało przerwane ściąganie - ale czy to da się questionmark.gif
PMadej
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
Cytat
Musisz pobrać od klienta miejsce w którym zostało przerwane ściąganie - ale czy to da się questionmark.gif


wlasnie - tylko jak? smile.gif
spenalzo
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
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....
Paul
Jednak nie takie trudne i mozliwe, tylko trzeba bylo to znajesc... smile.gif :

[php:1:a79d4b0a01]<?php
header("Accept-Ranges: bytes");
?>[/php:1:a79d4b0a01]

To rozwiazuje problem smile.gif
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.