Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Pobieranie obrazków z innych stron
Forum PHP.pl > Forum > Przedszkole
Adrian1207
Chciałem zapytać czy jest jakaś funkcja w php(a jeśli tak to jaka), żeby pobrać obrazek z podanego linku do niego i wrzucić go na swój serwer. W praktyce jest tak, że mam pole do wpisania linku do zdjęcia i jak zrobić żeby później zdjęcie z podanego linku wyświetlać ze swojego serwera i żeby się ono nie usuwało kiedy zostanie usunięte z obcego serwera. Z góry dziękuję za odpowiedź.
kresh
  1. <?php
  2. $inImageName = 'http://www....'; //url do fotki
  3. $inImage = imagecreatefromjpeg( $inImageName );
  4.  
  5. //pobieramy wymiary oryginalnego obrazka
  6. list( $z_width, $z_height ) = getimagesize( $inImageName );
  7.  
  8. //ustawiamy wymiary docelowego obrazka
  9. $height = $z_height;
  10. $width = $z_width;
  11.  
  12. //tworzymy nowy obrazek
  13. $outImage = imagecreatetruecolor( $width, $height );
  14.  
  15. /*
  16.  kopiujemy oryginalny obrazek do 
  17.  naszego, nowo utworzonego
  18. */
  19. imagecopyresampled( $outImage, $inImage, 0, 0, 0, 0, $width, $height, $z_width, $z_height );
  20.  
  21. /*
  22.  zapisujemy nasz obrazek - w miejsce "test_photo.jpg" podając 
  23.  ścieżkę wraz z nazwą nowo uwtozrzonego pliku.
  24.  Określa ona, gdzie na naszym serwerze zostanie zapisany
  25.  obrazek i pod jaką nazwą.
  26. */
  27. imagejpeg( $outImage, 'test_photo.jpg', 85 );
  28.  
  29. //Usuwamy zmienne
  30. imagedestroy($inImage);
  31. imagedestroy($outImage);
  32. ?>


Oczywiście powinieneś jeszcze sprawdzić rozszerzenie oryginalnego pliku i w zależności od niego użyć:
  1. <?php
  2. $inImage = imagecreatefromjpeg( $inImageName );
  3. //lub
  4. $inImage = imagecreatefrompng( $inImageName );
  5. //lub
  6. $inImage = imagecreatefromgif( $inImageName );
  7.  
  8. //oraz przy zapisie
  9. imagejpeg( $outImage, 'test_photo.jpg', 85 );
  10. //lub
  11. imagepng( $outImage, 'test_photo.png', 85 );
  12. //lub
  13. imagegif( $outImage, 'test_photo.gif', 85 );
  14. ?>
Crom
Jako że to mój pierwszy post na tym forum chciałbym wszystkich serdecznie powitać.

A co do tematu wątku, najprościej byłoby to chyba zrobić za pomocą poniższego kodu:

Dla PHP 5:
  1. <?php
  2.  $fContents = file_get_contents('http://forum.php.pl/style_images/1/logo4.gif');
  3.  file_put_contents('./logo4.gif',$fContents);
  4. ?>


Dla PHP >= 4.3.0 powinno zadziałać coś takiego (nie sprawdzałem):
  1. <?php
  2.  $fContents = file_get_contents('http://forum.php.pl/style_images/1/logo4.gif');
  3.  $fHandle = fopen('./logo4.gif','wb');
  4.  fwrite($fHandle, $fContents);
  5.  fclose($fHandle);
  6. ?>
Adrian1207
Dzieki Crom użyłem kodu dla php5 i działa wszystko, teraz mam inny problem ale to opisze w nowym temacie:) Kresh też dziękuję za odpowiedźsmile.gif

Edit:
Nowy problemik opisałem w TYM TEMACIE
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.