Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ściąganie pliku za pośrednictwem serwera
PMarcus
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.11.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Ges
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 9
Dołączył: 22.02.2008

Ostrzeżenie: (0%)
-----


Może zacznijmy od tego co napisałeś i co w tym Twoim kodzie nie działa.
Go to the top of the page
+Quote Post
kosmowariat
post
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


jak dobrze poszukasz to pewnie znajdziesz gotowca ;]
Go to the top of the page
+Quote Post
PMarcus
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.11.2009

Ostrzeżenie: (0%)
-----


  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"
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 00:57