Hallo habe folgendes Script um eine Datei auf den Webserver hochzuladen.
Wie intergriere ich jedoch den Zugriff auf einen Apache Server mit reqest in dieses Script?

use CGI;
use CGI::Carp 'fatalsToBrowser';
use Data:umper;

$CGI::POST_MAX = 1024 * 1024; # Hoechstens 1 MByte akzeptieren!
my $query = new CGI;

use WebCenter;

my $timestamp = time();
my $scriptname = "checkin1.pl";
# my ($dir) = ($ENV{SCRIPT_FILENAME} =~ q#(.*)/#);



use Apache::Request;
my $r = Apache->request();
my $apr = Apache::Request->new($r);

# Es sind Daten angekommen; auswerten.
my $filefh = $query->upload('filename');
my $finfo = $query->uploadInfo($filefh);

# Es sind Daten angekommen; auswerten.
my $filefh = $query->upload('filename');
my $finfo = $query->uploadInfo($filefh);

# Wir pruefen aber zuerst, ob der File-Transfer auch
# richtig abgeschlossen werden konnte (User hat nicht
# mit STOP die Uebertragung geschlossen):
if (!$filefh && $query->cgi_error) {
my $errmsg = $query->header(-status => $query->cgi_error);
print
$query->header(),
$query->start_html("Fehler"),
"Fehler beim Upload: $errmsg",
$query->end_html();
exit 0;
}

while (<$filefh>) {
# Tue etwas mit der aktuellen Zeile in $_

# Der Filehandle ist okay, wir lesen nun alle Daten ein
# und speichern sie irgendwohin. Wir gehen davon aus,
# dass es sich um eine binaere Datei handelt:
open(OUTFILE, "> /tmp/fromupload.$$") or die "can't create file: $!\n";
while (read($filefh, $buffer, 1024)) {
print OUTFILE $buffer;
}
close(OUTFILE);

# Okay, alles klar!
print
$query->header(),
$query->start_html('File uploaded'),
"Erhalten: ", $query->p(),
$query->pre(Dumper($finfo)),
$query->end_html();


# Wir speichern auch die diversen Informationen zu dieser Datei
# in einem Logfile (das sollte lieber mittels flock()
# atomar geschehen (NYI)).
open(LOGFILE, ">> \\dev.erlf.siemens.de:8000/") or die "can't open log: $!\n";
print LOGFILE "/tmp/fromupload.$$:\n", Dumper($finfo), "\n";
close(LOGFILE);


Gruß

ledzep
Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!