Skocz do zawartości
Hectic

Wiele połączeń do jednego pliku

Polecane posty

Cześć,

 

ostatnio zauważyłem, że pobierając plik z mojego serwera akcelerator pobierania nawiązuje tylko jedno połączenie do niego. Pobierając z innego serwera mogę sobie ustawić ilość połączeń np. 5. Jak zrobić coś takiego na moim serwerze? Proszę o jakieś wskazówki o czym mam poczytać. Z góry dzięki za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1) znajdz nazwe serwera (www lub ftp nie wiemy czym pobierasz)

2) doczytaj w dokumentacji lub google w ktorym pliku konfiguracyjnym zmienic ilosc polaczen per user

3) zmien

 

 

chyba ze masz

4) hosting wspoldzielony, wtedy zalezy to od dosawcy a ograniczenie jet celowe

5) firewall tak ustawiony ze nie daje nawiazac wiecej polaczen z jednego adresu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sprawdziłem konfigurację serwera i ustawiony jest limit 20 połączeń dla jednego ip. Przyznam, że nawet to działa problem zaczyna się gdy plik ma zostać pobrany przez php:

 

$fp = fopen($fileLink, 'r') or die ("404");

if(isset($_SERVER['HTTP_RANGE'])) { // wznawianie
list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
list($range1,$range2) = explode("-", $range);

if ($range2 == '' or $range2 < 0 or $range2 >= $file['size']) {
	$range2 = $file['size'] - 1;
}

if ($range1 < 0 or $range1 > $range2) {
	$range1 = 0;
}

$new_length = $range2 - $range1 + 1;
@header("HTTP/1.1 206 Partial Content");
@header("Content-Range: bytes $range1-$range2/{$file['size']}");
@header("Content-Length: $new_length");

curl_setopt($c, CURLOPT_RANGE, "{$range1}-{$range2}");
} else { // pobieranie od nowa
@header("Content-Range: bytes 0-{$file['size']}/{$file['size']}");
@header("Content-Length: ".$file['size']);
curl_setopt($c, CURLOPT_RANGE, '0-'.$file['size']);
}

@header("Content-Type: application/force-download");
@header("Content-Disposition: attachment; filename=".$file['name']);
fpassthru($fp);
fclose($fp);

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Głupi błąd w moim skrypcie, zamiast:

@header("Content-Range: bytes 0-{$file['size']}/{$file['size']}"

ma być:

@header("Content-Range: bytes -{$file['size']}/{$file['size']}"

czyli w całości:

$fp = fopen($fileLink, 'r') or die ("404");

if(isset($_SERVER['HTTP_RANGE'])) { // wznawianie
       list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
       list($range1,$range2) = explode("-", $range);

       if ($range2 == '' or $range2 < 0 or $range2 >= $file['size']) {
               $range2 = $file['size'] - 1;
       }

       if ($range1 < 0 or $range1 > $range2) {
               $range1 = 0;
       }

       $new_length = $range2 - $range1 + 1;
       @header("HTTP/1.1 206 Partial Content");
       @header("Content-Range: bytes $range1-$range2/{$file['size']}");
       @header("Content-Length: $new_length");

       curl_setopt($c, CURLOPT_RANGE, "{$range1}-{$range2}");
} else { // pobieranie od nowa
       @header("Content-Range: bytes -{$file['size']}/{$file['size']}"
);
       @header("Content-Length: ".$file['size']);
       curl_setopt($c, CURLOPT_RANGE, '0-'.$file['size']);
}

@header("Content-Type: application/force-download");
@header("Content-Disposition: attachment; filename=".$file['name']);
fpassthru($fp);
fclose($fp);

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×