Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapisywanie plików z adresu http:// na serwerze lokalnym
Forum PHP.pl > Forum > Przedszkole
Micky
Jak w temacie. Chcę skopiować plik z adresu który otrzymuję w zmiennej i zapisać go na serwerze gdzie mam swój skrypt.
Plik jest zawsze plikiem graficznym, więc (chyba) nie mogę go pobrać przez file_get_contents" title="Zobacz w manualu PHP" target="_manual.

Kod poniższy oczywiście nie działa. Ale wkleiłem go w celu pokazania jakiego rozwiązania próbowałem oraz o co mi chodzi.
Wiem, że kod nie działa z tego powodu, że nie da się skopiować jako plik tego co zwraca funkcja fopen" title="Zobacz w manualu PHP" target="_manual.

Jestem początkującym i mam świadomość że problem jest na poziome przedszkolnym. Jednak po dłuższym przeszukiwania w internecie nie udało mi się znaleźć rozwiązania tego problemu.
  1. <?php
  2. $file = fopen('http://example.com/2.0/cos/plik.jpg', "r");
  3.        
  4.    $upload_dir = '../covers/';
  5.    $copy = copy($file, $upload_dir);
  6.    if (!$copy) {
  7.        echo 'Nie udało się skopiować pliku.';
  8.    }
  9.    fclose($file);
  10. ?>
b4x
copy" title="Zobacz w manualu PHP" target="_manual ?

Czemu nie możesz otworzyć go file_get_contents" title="Zobacz w manualu PHP" target="_manual

Wystarczy np:

  1. <?php
  2.  
  3.  $adres = 'http://example.com/2.0/cos/plik.jpg'; // może być np. $_GET['adres_pliku'];
  4.  
  5.  $nazwa_pliku = 'plik.jpg'; // nazwa pliku ;)
  6.  
  7.  $zapisz_gdzie = dirname(__FILE__).'/covers/'; // zamień pobrane_by_php na dowonly katalog, pamiętaj o CHMODZIE 777, (możesz też po swojemu ../covers/)
  8.  
  9.  $plik = file_get_contents ($plik); // pobierz zawartość pliku.
  10.  
  11.  file_put_contents ($zapisz_gdzie.$nazwa_pliku, $plik);
  12.  
  13. ?>
Micky
Dzięki, Dzięki!
To mi pomogłeś!
Tylko chyba w tej lini:
  1. <?php
  2. $plik = file_get_contents ($plik);
  3. ?>

powinno być:
  1. <?php
  2. $plik = file_get_contents ($adres);
  3. ?>

To tak jakby ktoś chciał tego kodu kiedyś użyć i nie zauważył.
Pięknie mi wszystko śmiga.
I dzięki też za szybką odpowiedź!
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.