Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ściągniecie pliku z strony WWW poprzez PHP.
Forum PHP.pl > Forum > PHP
haryb
Mam następujace pytanie czy istnieje możliwość( jesli tak to w jaki sposóB) ściagnięcia, zgrania pliku np. doc, zip, swf z jakiejs strony i zapisanie u siebie na serwerze?

Np. mam link http://xxxxx.pl/cos.zip lub http://xxxxx.pl/cos.swf
I teraz chciałbym poprzez odpalenie skryptu sciagnac ten plik i zapisac automatycznie na serwerze, czy takei cos jest mozliwe pod PHP?
Jak takie cos wykonać?



pozdro
haryb
daniel1302
Niewiem nieznam sie na tym dobrze ale funkcja
  1. <?
  2. copy($source, $destination) or die("Błąd przy kopiowaniu");
  3. ?>

niezadziała?
RubiX
Był już taki temat na forum.

Zapraszam na http://www.php.net/manual/pl/features.remote-files.php

  1. <?php
  2. $file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
  3. if (!$file) {
  4. echo "<p>Nie można otworzyć zdalnego pliku do zapisu.\n";
  5. }
  6. /* Tutaj zapisujemy dane. */
  7. fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
  8. fclose ($file);
  9. ?>


Notatka: Być może powyższy przykład nasunął ci pomysł, by użyć tej metody do zdalnego zapisywania logów. Niestety taka próba się nie powiedzie, gdyż wywołanie fopen() zwróci błąd, jeśli zdalny plik już istnieje. Aby zrealizować zdalne logowanie powinieneś przyjrzeć się funkcji syslog().
haryb
Chodzi mi dokładnie o zapisanie pliku * .swf z adresu np http://xxx.pl/plik.swf za pomoca php na serwerze na którym odpalany jest skrypt. Czy wogole jest takei coś możliwe pod PHP?

pozdro
haryb
dadexix
hm..

  1. <?php
  2. $adres = "http://example.com/example.swf";
  3. $file = file_get_contents($adres);
  4. $name = "/pliki/new.swf"; //wstaw inną najlepiej losuj jakąś nazwę
  5. $a = fopen($name, "x+");
  6. fclose($a);
  7. $file2 = file_put_contents($name, $file);
  8. ?>


Powinno trybić:)
haryb
file_put_contents - chodzi tylko pod php5 - ja niestety musze to zrobic na serwer który chodzi pod php4 sad.gif

pozdro
haryb
legorek
  1. <?php
  2. $tresc = file_get_contents('http://example.com/example.swf');
  3. $a = fopen('/download/plik.swf', 'wb');
  4. fwrite($a, $tresc);
  5. fclose($a);
  6. ?>


Ale to nie jest najlepsza metoda:

Musisz sobie dorobić jakąś obsługę bledów.

Oczywiście dla dużych plików będzie przekraczać czas wykonania skryptu. Jesli twój hosting pozwala na wywołowanie poleceń systemowych odpal sobie wgeta w tle.
haryb
Dzięki za wszystkie rady i rozwiązania.
Zwykle copy dało rade:)

pozdro
haryb
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.