Datei übertragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei übertragen

    Hallo zusammen,

    ich möchte gerne eine Datei per PHP auf einen Webserver regelmäßig(alle Stunde) übertragen.

    Der empfangende Server erwartet von mir eine FTP-Verbindung im active mode.
    Mein Provider verbietet mir aber eine aktive FTP-Verbindung.

    Ich habe folgendes versucht (passives FTP) :
    PHP-Code:
    $ftp_server "xxx.de" ;
    $ftp_user_name "444" ;
    $ftp_user_pass "333" ;
    $conn_id ftp_connect("$ftp_server");
    $login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");
    $passiv ftp_pasv($conn_id,TRUE);
    if ((!
    $conn_id) || (!$login_result))
    {
        echo 
    "Nix OKI";
    }
    else
    {
        echo 
    "OKI";
        
    $upload1 ftp_put($conn_id"dat.dat""./dat.dat"FTP_ASCII);
        }

    so läuft das Script endlos und bricht irgendwann ab (aktives FTP).

    das allerdings geht - gibt aber Arger mit meinem Provider
    PHP-Code:
    $ftp_server "xxx.de" ;
    $ftp_user_name "444" ;
    $ftp_user_pass "333" ;
    $conn_id ftp_connect("$ftp_server");
    $login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");
    $passiv ftp_pasv($conn_id,FALSE);
    if ((!
    $conn_id) || (!$login_result))
    {
        echo 
    "Nix OKI";
    }
    else
    {
        echo 
    "OKI";
        
    $upload1 ftp_put($conn_id"dat.dat""./dat.dat"FTP_ASCII);
        }

    Hat jemand ne idee?
    Gibt es vielleicht auch noch Alternativen zur FTP-Übertragung ?

    Gruß Jogi

  • #2
    Gibt es vielleicht auch noch Alternativen zur FTP-Übertragung ?
    Sicherlich!!
    HTTP POST
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo nochmal,

      so habe ich es versucht:
      PHP-Code:
      $file "";
      $fp1 fopen("./TEST.DAT","r");
      $kennung base64_encode("user:pass");
      while(!
      feof($fp1))
      {
          
      $file1 fgets($fp11024);
          
      $file $file.$file1;
      }
      $data "";
      $fp fsockopen("server.de",21,$errstr,$errno);
      if(!
      $fp)
      {
          die();
      }
      else
      {
          
      $data addslashes($file);
          
      $data $file;
          
      fputs($fp"POST HTTP/1.1\r\n");
          
      fputs($fp"Host: server.de\r\n");
          
      fputs($fp"Authorization: Basic ".$kennung." \r\n");
          
      fputs($fp"Content-length: "strlen($data) ."\r\n");
          
      fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
          
      fputs($fp"Connection: close\r\n\r\n");
          
      fputs($fp$data);

      Es tut sich aber nichts.

      Ich wollte die Datei TEST.DAT an den Server schicken.

      Kann mir da noch jemand helfen ?

      Kommentar


      • #4
        Zum senden der Datei eignen sich Curl und snoopy ganz gut.....
        Und auf dem Server muß natürlich ein PHP Script auf die Datei warten
        Wir werden alle sterben

        Kommentar


        • #5
          Hallo nochmal,

          auf der gegenseite wartet kein php programm.
          ich habe einen zugang und möchte dort eine datei ablegen.

          Kommentar


          • #6
            auf der gegenseite wartet kein php programm.
            Das ist aber schlecht, dann gehts mit HTTP nicht...
            Wir werden alle sterben

            Kommentar


            • #7
              Original geschrieben von combie
              Das ist aber schlecht, dann gehts mit HTTP nicht...
              geht doch, aber sie bleibt im tempordner mit einem tempnamen einfach liegen

              eigentlich erwartet ein http-upload boundary

              frage wurde eben in einem anderem forum gestellt, wo der fragesteller von mir ein paar links bekommen hat.
              Slava
              bituniverse.com

              Kommentar


              • #8
                aber sie bleibt im tempordner mit einem tempnamen einfach liegen
                Glaube ich nicht!
                Der Apache liefert "das Päckchen" als PostRawData o.ä. an PHP. Bevor PHP das Script startet, erzeugt es die Datei im TempOrdner.
                Also, ohne PHP keine Datei
                (kann allerdings sein, dass andere Sprachen das änlich abhandeln)
                Zuletzt geändert von combie; 26.10.2007, 00:35.
                Wir werden alle sterben

                Kommentar


                • #9
                  Hallo nochmal,

                  Also, ich fasse nochmal zusammen.

                  Per FTP darf ich nicht uploaden, da aktives FTP nicht erlaubt ist - der empfangende Server erwartet das aber.

                  ich habe von dem Server ftp://empfang.de
                  einen FTP-Zugang benwd


                  Nun möchte ich per HTTP POST die Datei übertragen.
                  Mir ist aber nicht ganz klar, wie ich das machen soll.

                  Mein Versuch:
                  PHP-Code:
                  $file "";
                  $fp1 fopen("./TEST.DAT","r");
                  $kennung base64_encode("ben:pwd");
                  while(!
                  feof($fp1))
                  {
                      
                  $file1 fgets($fp11024);
                      
                  $file $file.$file1;
                  }
                  $data "";
                  $fp fsockopen("empfang.de",21,$errstr,$errno);
                  if(!
                  $fp)
                  {
                      die();
                  }
                  else
                  {
                      
                  $data addslashes($file);
                      
                  $data $file;
                      
                  fputs($fp"POST /empfang.php HTTP/1.1\r\n");
                      
                  fputs($fp"Host: empfang.de\r\n");
                      
                  fputs($fp"Authorization: Basic ".$kennung." \r\n");
                      
                  fputs($fp"Content-length: "strlen($data) ."\r\n");
                      
                  fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
                      
                  fputs($fp"Connection: close\r\n\r\n");
                      
                  fputs($fp$data);
                  }
                  while(!
                  feof($fp))
                  {
                      
                  $fget fgets($fp128);
                      
                  $daten .= $fget;
                  }
                  fclose($fp);
                  echo 
                  $daten
                  Wenn ich dass laufen lasse, dann kommt :


                  Auf der Gegenstelle wäre das script empfang.php, welches die Datei entgegen nimmt.
                  Wie müsste das aussehen, wenn dass im gleichen Ordner liegt, in dem die Datei gespeichert werden soll?

                  Bitte helft mir, ich komm net weiter.
                  PHP-Code:
                  220 wzd server ready530 Invalid login sequence 

                  Kommentar


                  • #10
                    Wenn du auf der Empfangsseite eine php Datei hast, warum machst du dann nicht einfach ein Upload Form?
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von jahlives
                      Wenn du auf der Empfangsseite eine php Datei hast, warum machst du dann nicht einfach ein Upload Form?
                      weil er sicher nicht alle stunde was AKTIV uploaden will

                      ich möchte gerne eine Datei per PHP auf einen Webserver regelmäßig(alle Stunde) übertragen.
                      **********
                      arkos
                      **********

                      Kommentar


                      • #12
                        weil er sicher nicht alle stunde was AKTIV uploaden will
                        Gutes Argument. Sollte wohl nicht nur den letzten Post lesen

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Serverseitig:
                          http://de.php.net/manual/de/features.file-upload.php


                          Clientseitig:
                          http://de2.php.net/manual/de/functio...ost-fields.php
                          http://de2.php.net/manual/de/ref.curl.php#78328
                          Wir werden alle sterben

                          Kommentar

                          Lädt...
                          X