Externe Datei speichern

dtm

Mitglied
Hallo
ich möchte mittels Perl/CGI eine externe Datei (z.B. Bild einer fremden Webcam)
auf meinem Server Speichern


...
$H ="http://www.domain.de/test.png";

open (INX,"<$H") || die "Fehler beim oeffnen der Datei !".$H."! ";

....
erzeugt den Fehler beim oeffnen...

was läuft falsch?
die Datei ist sicher vorhanden, wenn ich die Zeile im Browser angebe, wird sie angezeigt.

Ich vermute es liegt daran, dass sie nicht auf dem lokalen Server liegt. Wie geht das also mit einer externen Datei?
 
Hi!

Richtig, ein open() auf eine URL ist in Perl nicht möglich. Die Datei muss erst geladen werden. Das geht mit Hilfe von diversen Modulen aus dem CPAN bzw. den mit der Installation mitgelieferten.
Am besten geeignet ist wohl die Familie der LWP Module und für einfachste Aufgaben empfiehlt sich hier LWP::Simple:
Perl:
#!/usr/bin/perl

use strict;
use LWP::Simple qw(get);

my $content = get "http://www.google.de"
    or die "Dumm gelaufen... $!";
print $content, "\n";
Brauchst Du den Content unbedingt als Filehandle, kannst Du z.B. mit Tie::Handle ein Wenig spielen.

Gruß
Enum
 
  • Gefällt mir
Reaktionen: dtm
Zurück