Mario: use LWP::Simple

Hallo,

mit:

use LWP::Simple;
getstore("http://www.irgendwas.de/data.txt", "C:/data.txt");

kann ich mir ja eine Datei auf die Festplatte holen. Gibt's auch die umgekehrte Möglichkeit, also die Datei, nach Änderung, wieder zurück auf den Server zu spielen?

Danke

Mario

  1. Hi,

    use LWP::Simple;
    getstore("http://www.irgendwas.de/data.txt", "C:/data.txt");

    kann ich mir ja eine Datei auf die Festplatte holen. Gibt's auch die umgekehrte Möglichkeit, also die Datei, nach Änderung, wieder zurück auf den Server zu spielen?

    LWP::Simple macht nichts anderes als ein Browser auch. Jetzt überlege Dir also, wie ein Browser Daten uploaded: allenfalls per FTP. Also suche nach einem FTP-Modul - ein Account mit Passwort auf dem Zielrechner sind natürlich Bedingung.

    IIRC gibt es da Net::FTP, mit dem die Aufgabe leicht zu erfüllen sein müßte.

    Cheatah

    1. Hallo,

      IIRC gibt es da Net::FTP, mit dem die Aufgabe leicht zu erfüllen sein müßte.

      das müßte dann so gehen:

      #!/usr/bin/perl

      use Net::FTP;

      $user = "name";
      $login = "passwort";
      $dir = "/upload";
      $host = "www.ftp.server.com";

      $ftp = Net::FTP->new($host);

      $ftp->login($name, $login);

      $ftp->cwd($dir);

      $ftp->binary(); # Binär Modus

      $ftp-> ascii();  # Ascii Modus

      $ftp->put("c:\data.txt", "data.txt");

      $ftp->quit();

      Gruß

      Stephan

      1. Hi Stephan, einfach Klasse das Modul Net::FTP; #!

        Jetzt dieses Script nur noch in ein CGI umschreiben, was nicht weiter schwierig sein dürfte, und schon erblickt ein neuer FTP-Client durch das Browserfenster das Licht der großen weiten InterNetWelt - waow!

        So ein Teil schreib ich mir demnext, bloß: Wie soll er denn nun heißen der Gute, "FTP_B_X_rer" oder "Bro-FTP-rer" oder "B-FTP-X-rer" ich weis nicht, ich weis nicht. Vielleicht hat dieser oder jene einen Vorschlach? Explodierer vielleicht? Aber demnach müßte ja ein jeder Forscher Forscherer heißen (oder so_) ;-)  Rolf

        PS: Ich wünsche allen Anwälten viel Erfolg beim Erforschen des Internets! Womit ein jeder Anwalt ein *explorer* ist!
        ___QED___

        1. Hallo,

          Hi Stephan, einfach Klasse das Modul Net::FTP; #!

          Jetzt dieses Script nur noch in ein CGI umschreiben, was nicht weiter schwierig sein dürfte, und schon erblickt ein neuer FTP-Client durch das Browserfenster das Licht der großen weiten InterNetWelt - waow!

          So ein Teil schreib ich mir demnext, bloß: Wie soll er denn nun heißen der Gute, "FTP_B_X_rer" oder "Bro-FTP-rer" oder "B-FTP-X-rer" ich weis nicht, ich weis nicht. Vielleicht hat dieser oder jene einen Vorschlach? Explodierer vielleicht? Aber demnach müßte ja ein jeder Forscher Forscherer heißen (oder so_) ;-)  Rolf

          Stimmt eigentlich ...
          ich hab das aus nem Buch ... nur die wichtigen Teile genommen *g*
          Wenn du willst, kann ich dir auch noch mehr Beispiele, die da zu Net::FTP drin sind mailen‚

          Wenn du deinen FTP Client fertig hast, melde dich mal bei mir :)

          Stephan

      2. Danke für die Tips!

        Ich will das Script offline mit omnihttp und diese Routine dann zum upload nutzen. Das Problem ist jetzt, nachdem ich die Funktion integriert habe, lässt sich mein Script (offline) nicht mehr aufrufen (weißer Bildschirm). Sobald ich die Zeile use Net::FTP; rausnehme, funktioniert es wieder.

        Woran kann's liegen?

        Danke

        Mario

        1. Hi,

          Das Problem ist jetzt, nachdem ich die Funktion integriert habe, lässt sich mein Script (offline) nicht mehr aufrufen (weißer Bildschirm). Sobald ich die Zeile use Net::FTP; rausnehme, funktioniert es wieder.

          Woran kann's liegen?

          ist das Modul bei Dir installiert? Test: perldoc Net::FTP aufrufen.

          Cheatah

          1. HI,

            ist das Modul bei Dir installiert? Test: perldoc Net::FTP aufrufen.

            Wie kann ich das testen? Sehe da nicht ganz durch, verwende ActivePerl. Wenn das Modul fehlt, woher bekommt man das?

            Gruß

            Mario

            1. Hi,

              ist das Modul bei Dir installiert? Test: perldoc Net::FTP aufrufen.

              Wie kann ich das testen?

              tippe "perldoc Net::FTP" bei Dir ein. Z.B. in einer DOS-Box oder in Start/Ausführen.

              Sehe da nicht ganz durch, verwende ActivePerl. Wenn das Modul fehlt, woher bekommt man das?

              Starte ppm in Deinem Perl-Verzeichnis.

              Cheatah

            2. Hi Mario,

              Wie kann ich das testen? Sehe da nicht ganz durch, verwende ActivePerl. Wenn das Modul fehlt, woher bekommt man das?

              Net::FTP scheint nicht Bestandteil der ActiveState-Installation sein. Bei mir ist es jedenfalls nicht dabei.

              Was Du installiert hast kannst Du mit dem PPM testen. PPM starten und dann eingeben:

              query [modulname]

              Wenn keine Info kommt, dann ist es nicht installiert. Dann kannst Du prüfen, ob das Modul wenigstens Bestandteil Deiner Distribution ist, indem Du statt query  search verwendest. z.B. brint  "search net" bei mir folgendes:

              C:\WINDOWS>ppm
              PPM interactive shell (1.1.3) - type 'help' for available commands.
              PPM> search net
              Packages available from soap://www.activestate.com/cgibin/SOAP/ppmserver.plex?cl
              ass=PPM::SOAPServer:
              Net-Telnet [3.01] interact with TELNET port or other TCP ports
              libnet     [1.06] libnet is a collection of Perl modules which provides a
                                simple and consistent programming interface (API) to the
                                client side of various protocols used in the internet
                                community.
              PPM>

              Also kein Modul Net::FTP vorhanden.

              Dies bedeutet, Du mußt Dir von hier

              http://search.cpan.org/search?module=Net::FTP

              das Modul holen und selbst installieren (benötigst dazu nMake.exe).

              Gruß
              Timothy