Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kopiowanie pliku
Forum PHP.pl > Forum > Przedszkole
favik
Witam,
mam taki problem a mianowicie chciałbym skopiować plik z serwera na drugi serwer przez skrypt PHP.

Wszystko ładnie pięknie lecz z tego serwera z którego chce pobrać plik są dodatkowe zabezpieczenia a mianowicie:

Gdy otwieram nową kartę w przeglądarce i wklejam bezpośredni link do pliku to pobieranie zaczyna się, lecz gdy chcę użyć tego w funkcji copy(), file_get_contents(), pokazuje że plik nie istnieje.
Próbowałem też z innej strony wejść na hiperłącze lecz tak jak wyżej wspomniałem są dodatkowe zabezpieczenia i jak klikam w link to przechodzi na stronę główną strony z której próbuje pobrać plik.

Myślę że przy pobieraniu pliku sprawdzane jest: $_SERVER['HTTP_REFERER'] ...
Może coś wam więcej przychodzi do głowy?


Pozdrawiam favik
matijas6113
Jestem początkujący jednak myślę, że bardzo by sie przydało ujawnić rąbek kodu w php który napisałeśsmile.gif
Nie wiem czy dobrze zrozumiałem, chcesz pobrać plik z serwara A na serwer B i na serwerze B masz skrypt do, którego podajesz parametr którym jest ścieżka do pliku na serwerze A, tak? jeśli tak to pytanie czy serwer A nie jest serwisem hostingowym, który zabezpiecza przed pobieraniem bez limitów.. bo wtedy nie pobierzesz pliku bezpośrednio.. Jesli jednak do pliku można "dotrzeć" bezpośrednio (nie jestem pewien czy można pobierać przez get_file_contents() ) ale jeśli można to spróbuj pobrać plik do zmiennej a następnie utworzyć plik o takim samym rozszerzeniu i zapisać do niego zawartość zmiennej.

Nie wiem czy podałem trafne podpowiedzi ale mam nadzieje ze chociaż w małym stopniu pomogłem:)
favik
Szukam rozwiązania i natrafiłem na coś takiego:
<META HTTP-EQUIV=Refresh CONTENT="3; URL=http://domena.com/files/rar/plik.rar">

Jak dodam powyższy kod do pliku PHP zamiast headera to odnajduje plik i go pobiera. Czy wiecie jak go teraz zapisać?
matijas6113
W ten sposób to wydaje mi się, że robisz przekierowanie z twojej strony na plik na zewnętrznym serwerze....

Pisałem Ci abyś pokazał swój kod w php i ewentualnie spróbował zrobić tak jak ci pisałem.

1minuta pracy: i u mnie działa i normalnie pobiera obrazek i zapisuje na moim serwerze

  1. $plik = file_get_contents("http://www.SERWER_ZEWNETRZNY.pl/gfx/cennik.jpg"); // pobranie pliku cennik.jpg (scieżka do pliku na zewnętrznym serwie)
  2. // zapis pobranego pliku na twoim serwie
  3. $file = fopen("pobrane.jpg", "w");
  4. flock($file, 2);
  5. fwrite($file, $plik);
  6. flock($file, 3);
  7. fclose($file);
  8.  
  9. echo '<img src="pobrane.jpg" />'; // no i proste sprawdzenie czy obrazek sie jest ok...


U mnie śmiga... sprawdź sobie czy inne pliki też będę śmigać i ewentualnie pokombinuj i rozbuduj:)
lukaskolista
a nie jest czasem tak, ze dyrektywe allow_url_fopen na Twoim serwerze masz ustawiona na off?
erix
...albo serwis sprawdza inne dane użytkownika, których żądanie wykonane z serwera po prostu nie posiada.
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.