Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ściągniecie pliku z strony WWW poprzez PHP., Ściągnięcie pliku i zapisanie u siebie na serwerze
haryb
post
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
daniel1302
post
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


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

niezadziała?
Go to the top of the page
+Quote Post
RubiX
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


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().
Go to the top of the page
+Quote Post
haryb
post
Post #4





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


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





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


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ć:)
Go to the top of the page
+Quote Post
haryb
post
Post #6





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


file_put_contents - chodzi tylko pod php5 - ja niestety musze to zrobic na serwer który chodzi pod php4 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

pozdro
haryb
Go to the top of the page
+Quote Post
legorek
post
Post #7





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


  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.

Ten post edytował legorek 9.01.2008, 10:54:42
Go to the top of the page
+Quote Post
haryb
post
Post #8





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


Dzięki za wszystkie rady i rozwiązania.
Zwykle copy dało rade:)

pozdro
haryb

Ten post edytował haryb 17.01.2008, 09:32:28
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: 23.08.2025 - 20:44