Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[php] Przesyłanie plików pomiędzy serwerami bez międzyzapisu

Mat_91 31 Paź 2010 11:47 1928 5
  • #1 31 Paź 2010 11:47
    Mat_91
    Poziom 25  

    Witam!
    Temat brzmi trochę dziwnie ale już tłumacze o co chodzi :)

    Otóż są 3 serwery:
    Serwer z plikiem, np.: serwerzplikiem.pl/plik.txt
    serwer mojej strony: mojastrona.pl
    jakiś serwer ftp: ftp.strona.pl

    I teraz na mojej stronie mam skrypt w którym podaje w formularzu dane do ftp oraz adres pliku do pobrania, i skrypt ma za zadanie pobrać ten plik przez http z sewerzplikiem.pl i od razu wysłać go na serwer ftp, ale tak aby plik nie był zapisywany na moim serwerze (mojastrona.pl).
    Trochę już o tym czytałem i wiem że można pobrać plik i zapisać go na moim serwerze, a później otworzyć sesję ftp i przesłać go na serwer ftp, ale właśnie ten sposób nie wchodzi w grę, chcę uniknąć tego między zapisu na moim serwerze. Czy jest to w ogóle wykonalne?

    Nie proszę o gotowca, potrzebuję tylko informacji czy da się to w ogóle zrobić. Może jakieś linki? Będę wdzięczny za każdą pomoc:)

    0 5
  • Pomocny post
    #2 31 Paź 2010 12:33
    arnoldziq
    Moderator Programowanie

    Jest to możliwe.
    Poszukaj informacji o rozszerzeniu protokołu FTP, zwanym File eXchange Protocol.
    W skrócie : FXP lub FXSP.
    Jedyna wada : oba serwery muszą obsługiwać powyższy protokół.

    0
  • #3 31 Paź 2010 22:46
    Mat_91
    Poziom 25  

    A co w wypadku gdy na jednym serwerze mam dostęp tylko po html? Da się to jakoś obejść?

    0
  • #4 31 Paź 2010 23:16
    Tommy82
    Poziom 39  

    Nie robiłem tego ale sprawdził bym czy wget poradził by sobie z zapisaniem pliku na FTP.

    0
  • #5 02 Lis 2010 19:29
    Mat_91
    Poziom 25  

    Witam ponownie :)
    Temat w sumie już nie aktualny.

    Ale mam do was pytanie. Napisałem prosty skrypt w php który ma za zadanie pobrać plik z FTP na serwer:

    Code:

     <?php
     $identyfikator_strumienia = ftp_connect("serwer");
     ftp_login($identyfikator_strumienia, "login" , "haslo");
     print 'OK!';
     ftp_pasv($identyfikator_strumienia, true);
     if (ftp_get($identyfikator_strumienia, 'plik.txt', 'plik.txt', FTP_ASCII)) {
     print 'plik pobrany';
     } else {
     echo 'blad';
     }
     ftp_close($identyfikator_strumienia);
    ?>


    I dostaje błąd: Warning: ftp_get() [function.ftp-get]: Unknown command RETR in /www/index2.php on line 6

    o co chodzi? Ten sam kod tylko z wykorzystaniem funkcji ftp_put działa bezbłędnie zarówno dla małych plików txt jak i 100MB rar :|

    0
  • #6 03 Lis 2010 19:41
    kubatek94
    Poziom 17  

    Witaj, moze to taka prowizorka, ale sprobuj wylczyc ostrzezenia i zobaczy czy skrypt dziala. Jak dziala to albo zostaw tak jak jest, albo szukaj przyczyny. Pozdrawiam

    0