Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Ilość połączeń i wznawianie pobierania
Forum PHP.pl > Forum > Przedszkole
daver194
Cześć!
Jestem w posiadaniu takiego skryptu:

  1. <?php
  2. $login = "";
  3. $haslo = "";
  4.  
  5. function get_number($url)
  6. {
  7. $regex = '|/file/(([a-z][0-9]+/)?[0-9]+)(/.*)?$|';
  8. preg_match($regex, $url, $matches);
  9. return $matches[1];
  10. }
  11. if($_POST['pokaz'])
  12. {
  13. $link = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'?link='.$_POST['pokaz'];
  14. echo ("<center><b>Twój link do pobrania: <a href=\"$link\">$link</a></b></center><br>");
  15. }
  16. $link = addslashes($_GET['link']);
  17. if($link)
  18. {
  19.  
  20.  
  21. $url = 'http://api.filesonic.com/link?method=getDownloadLink&u='.$login.'&p='.$haslo.'&ids='.get_number($link);
  22.  
  23. $ch = curl_init($url);
  24. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  25. $zrodlo = curl_exec($ch);
  26. curl_close($ch);
  27.  
  28. $ss = explode('"filename":"', $zrodlo);
  29. $ss1 = explode('"', $ss[1]);
  30. $nazwa = trim($ss1[0]);
  31.  
  32.  
  33. $ss2 = explode('"url":"', $zrodlo);
  34. $ss3 = explode('"', $ss2[1]);
  35. $download = trim($ss3[0]);
  36.  
  37. $download = str_replace('\\', '', $download);
  38.  
  39.  
  40. $remoteFile = $download;
  41. $ch = curl_init($remoteFile);
  42. curl_setopt($ch, CURLOPT_NOBODY, true);
  43. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  44. curl_setopt($ch, CURLOPT_HEADER, true);
  45. $data = curl_exec($ch);
  46. curl_close($ch);
  47. if ($data === false) {
  48. echo 'Plik wygasł!';
  49. }
  50.  
  51. $contentLength = 'unknown';
  52. $status = 'unknown';
  53. if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
  54. $status = (int)$matches[1];
  55. }
  56. if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
  57. $waga = (int)$matches[1];
  58. }
  59. if (preg_match('/filename="(.*)"/', $data, $wynik)){
  60. $nazwa = trim($wynik[1]);
  61. }
  62. header("Content-type: application/force-download");
  63. header('Content-Disposition: attachment; filename="'.$nazwa.'"');
  64. header('Content-Length: '.$waga);
  65. $ch = curl_init();
  66. curl_setopt($ch, CURLOPT_URL, $download);
  67. curl_exec($ch);
  68. curl_close($ch);
  69. }
  70. ?>


Służy on do pobierania plików z np. Filesonic.com za pośrednictwem serwera.
Niestety występuje problem. Otóż serwer podczas pobierania pliku, w pewnym momencie zrywa połączenie i trzeba pobierać od nowa.
Myślę, że problem leży w konfiguracji serwera. Chciałbym ustawić go tak, żeby podczas pobierania pliku możliwe było nawiązanie kilku jednoczesnych połączeń i wznawianie połączenia w razie jego zerwania. Proszę Was o wskazówki!
krysia5522
Jakie masz ustawienia w php.ini
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.