Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] zapis zdalnego pliku jpg
tikky
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Witam,

Mam link do pliku jpg http://www.istockphoto.com/design_spotligh...=3&id=21406

ale jak go zapisuje w PHP funkcją:

  1. <?php
  2. function file_post_contents($url,$headers=false) {
  3.     $url = parse_url($url);
  4.  
  5.     if (!isset($url['port'])) {
  6.       if ($url['scheme'] == 'http') { $url['port']=80; }
  7.       elseif ($url['scheme'] == 'https') { $url['port']=443; }
  8.     }
  9.     $url['query']=isset($url['query'])?$url['query':'';
  10.  
  11.     $url['protocol']=$url['scheme'].://';
  12.     $eol="r\n";
  13.  
  14.     $headers =  "POST ".$url['protocol'].$url['host'].$url['path']." HTTP/1.0".$eol.
  15.                 "Hos: ".$url['host'].$eol.
  16.                 "Referer: ".$url['protocol'].$url['host'].$url['path'].$eol.
  17.                 "Content-Typ: application/x-www-form-urlencoded".$eol.
  18.                 "Content-Lengt: ".strlen($url['query']).$eol.
  19.                 $eol.$url['query'];
  20.     $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);
  21.     if($fp) {
  22.       fputs($fp, $headers);
  23.       $result = '';
  24.       while(!feof($fp)) { $result .= fgets($fp, 128); }
  25.       fclose($fp);
  26.       if (!$headers) {
  27.         //removes headers
  28.         $pattern="/^.*r\nr\n/s";
  29.         $result=preg_replace($pattern,'',$result);
  30.       }
  31.       return $result;
  32.     }
  33. }
  34.  
  35. $tresc=file_post_contents('htt://www.istockphoto.com/design_spotlight_fileview.php?size=3&id=21406');
  36. $file = fopen('obrazek.jpg', 'w');
  37. fwrite($file, $tresc);
  38. fclose($file);
  39. ?>



to na początku pliku jpg dodane jest 16 dodatkowych 16 linii, które to uniemożliwiają poprawne otwarcie .jpg:
  1. HTTP/1.0 200 OK
  2. Server: Apache/1.3.37 (Unix)
  3. X-Powered-By: PHP/4.4.9
  4. P3P: CP="OTI DSP COR ADM DEV PSA PSD IVDi OUR PUBi IND PRE"
  5. Pragma: no-cache
  6. Content-Disposition: inline; filename=file.jpg
  7. Content-Type: image/jpeg
  8. Cache-Control: private, max-age=0
  9. Expires: Thu, 25 Sep 2008 15:01:55 GMT
  10. Date: Thu, 25 Sep 2008 15:01:55 GMT
  11. Connection: close
  12. Set-Cookie: sessionID=01657054109277884035342186668268; path=/; domain=.istockphoto.com
  13. Set-Cookie: sessionID=01657054109277884035342186668268; expires=Fri, 26 Sep 2008 15:01:53 GMT; path=/; domain=.istockphoto.com
  14. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  15. Expires: Thu, 19 Nov 1981 08:52:00 GMT


Co zrobić aby nie było tych linii? Lub jak inaczej (prościej) zapisać na lokalnym serwerze plik .jpg ze zdalnego serwera?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
hateman
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 18
Dołączył: 28.04.2008
Skąd: Poznań

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


Niepotrzebnie otwierasz tekstowo ten plik :/


zrób tak:
  1. <?php
  2. $file = 'htt://www.istockphoto.com/design_spotlight_fileview.php?size=3&id=21406';
  3. $newfile = 'plik.jpg';
  4.  
  5. copy($file, $newfile);
  6. ?>
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


@tikky,
robisz robota wykradającego fotki z istockphoto? (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
tikky
post
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Wykradajacego to zle slowo. Sam tam sprzedaje swoje fotki wiec znam zasady.

Chciałem zrobic robota który pobrał by mi 100 plików, ale nie zdjęć tylko plików z designer spotlight coby mieć na kompie ciekawe przykłady prac od ludzi, od których się warto uczyć, wszak po to jest tam to publikowane.
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


To jak napisał ~hateman - copy() albo file_get_contents()
Go to the top of the page
+Quote Post
tikky
post
Post #6





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


hateman, sowiq: Dzieki, działa juz całość i ściąga :-) Całkiem sprawnie to idzie.
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.08.2025 - 14:38