Veröffentlicht 26. März 200322 j Hallo! Ich möchte von einer URL (z.B. http://irgendeineurl.de/image.gif) ein Bild mittels Perl auf meine Festplatte kopieren. Ich habe nur leider keine Ahnung wie das gehen soll? Mit dem copy-Befehl ging das nicht, weil der als Quelle keine URL's nimmt! Danke! Gruß, Uwe
26. März 200322 j Hi, ihr seit ja alles voll die Perl Spezialisten. Lösung zum ursprünglichen Problem. Am schnellsten geht es so: use LWP::Simple; getstore($url, $localfile); Näheres zu LWP::Simple hier: http://www.perldoc.com/perl5.8.0/lib/LWP/Simple.html Gruß Jaraz
26. März 200322 j Musste jetzt extra Perl dafür installieren. use LWP::Simple; getstore("http://www.heise.de/icons/ho/heise.gif", "heise.gif"); Speichert bei mir das Bild unter dem Namen heise.gif ab. Gruß Jaraz
26. März 200322 j Ich hoffe das hilft dir weiter hab ich in einer Newsgroup bei Google gefunden: ------------------------------------------------------------- Hallo allerseits, ich möchte gerne über ein Perl-Skript ein Bild von einer Internetseite herunterladen und in dem aktuellen Verzeichnis speichern. Laut Dokumentation müsste das in Version 5.6.1 folgendermaßen gehen: require HTTP::Request; $request = HTTP::REQUEST->new(GET => 'URL zum Bild'); Meine Frage ist nun wie ich dem $request beibringe, dass es den Inhalt in eine Datei speichert. Wie geht das? ------------------------------------------------------------- Wenn du nun weisst wie man das $request abspeichert is ja alles okay Ich hab leider nicht soviel Ahnung von Perl... :marine
26. März 200322 j nee ... geht nicht! vielleicht liegt das an unserer firewall!? Aber trotzdem danke! Gruß, Uwe
26. März 200322 j Originally posted by pAnBytE require HTTP::Request; $request = HTTP::REQUEST->new(GET => 'URL zum Bild'); Das Modul LWP::Simple macht nichts anderes. use LWP::Simple; $content = get("URL zum Bild"); wäre demnach equivalent zu deiner Lösung. getstore(url, file) Speichert nur noch eben $content in eine Datei und gibt den HTML Status Code zurück. Wobei man $content natürlich auch über einen eigenen Filehandle speichern könnte aber warum kompliziert wenn es auch einfach geht. @Thread Ersteller Laufen denn andere Perl Skripte? Hast du Schreibrechte auf das Verzeichnis? Wenn du von der Kiste aus surfen kannst, sollte die Firewall kein Problem sein, da imho alles über Port 80 geht. Gruß Jaraz
26. März 200322 j meine anderen skripte laufen und port 80 ist auch frei. hier ist mein Code mit dem ich deine Idee teste: ------------------------- #!D:\\Programmierung\\Perl\\bin\\Perl5.6.1.exe -w print ("Content-type: text/html\n\n"); use LWP::Simple; getstore("http://www.heise.de/icons/ho/heise.gif", "heise.gif"); 1; -------------------------- so das wars .. wie gesagt es passiert einfach nix .. es gibt aber auch keine Fehlermeldung oder so
26. März 200322 j Originally posted by Penntuete #!D:\\Programmierung\\Perl\\bin\\Perl5.6.1.exe -w Ich weis ja nicht aber sollte das wenn nicht so lauten: #!D:\Programmierung\Perl\bin\Perl5.6.1.exe -w
26. März 200322 j kann es sein das mir ein package fehlt? wie kann ich überprüfen ob ich LWP habe? Ich nutze ActivePerl 5.6.1!
26. März 200322 j dazu hab ich folgende Newsgroup gefunden: http://groups.google.de/groups?q=perl+lwp+schon+installiert&hl=de&lr=lang_de&ie=UTF-8&oe=UTF-8&selm=3A6A552C.FE986AF8%40guestbookserver.de&rnum=1
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.