Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ściąganie pliku za pośrednictwem serwera
Forum PHP.pl > Forum > PHP
PMarcus
Witam, czy jest sposób, aby przesłać (z uzyciem curl - cookies) plik z innego serwera poprzez mój do użytkownika?
Widziałem takie rozwiązanie, lecz nie mam pomysłu jak to zrobić. Napisałem skrypcik, lecz nijak się ma do oczekiwań.

Pozdrawiam
Ges
Może zacznijmy od tego co napisałeś i co w tym Twoim kodzie nie działa.
kosmowariat
jak dobrze poszukasz to pewnie znajdziesz gotowca ;]
PMarcus
  1. $c = curl_init();
  2. curl_setopt($c, CURLOPT_URL, $link);
  3. curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
  4. curl_setopt($c, CURLOPT_HEADER, 0);
  5. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  6. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  7. curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
  8. curl_setopt($c, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookiefile');
  9. curl_setopt($c, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookiefile');
  10. $file = curl_exec($c);
  11.  
  12. $filename = $_GET['info'];
  13.  
  14. header("Pragma: public");
  15. header("Expires: 0");
  16. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  17. header("Cache-Control: public");
  18. header("Content-Description: File Transfer");
  19. header("Content-Type: application/zip");
  20. header("Accept-Ranges: bytes");
  21. header("Content-Disposition: attachment; filename=\"" . $filename . "\";");
  22. header("Content-Transfer-Encoding: binary");
  23.  
  24. if ($file) {
  25. while(!feof($file)) {
  26. print(fread($file, 1024*8));
  27. if (connection_status()!=0) {
  28. @fclose($file);
  29. die();
  30. }
  31. }
  32.  
  33. }
  34. curl_close ($c);


Poza tym chyba ściąganie całego pliku do $file nie jest najlepszym pomysłem...

Po prostu chciałbym przesyłać to praktyznie "na żywo"
erix
No najprościej to przez fopen na zdalnym pliku i wypluwać całą zawartość co każde fread (dla paczki - powiedzmy - 512 bajtów).

Ale to nie jest i tak najlepszy sposób; najlepiej postaw demon proxy.
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.