Ich habe hier ein Perl Script um dateien hochzuladen! Es gibt auch keine Fehler und die Datei wird auch angelegt! Aber der inhalt der Datei wird nicht übertragen! Die Datei ist also 0Byte groß!
Das script läuft auf einem Apache unter SUSE Linux und als Client habe ich sowohl Linux ( Firefox) als auch Windows (IE) getestet!
#!/usr/bin/perl# SO sieht das Form aus:
#########################################################################################################
# Unterroutine UploadForm
#
#########################################################################################################
#sub upForm
#{
# print "<form action=\"FileSave.pl\" mothod=\"post\"
ENCTYPE=\"multipart/form-data\">\n";
# print " <input type=\"file\" name=\"file\">\n";
# print " <input type=\"hidden\" name=\"sDir\" value=\"$sDir\">\n";
# print " <input type=\"submit\">\n</form>\n";
#}
#########################################################################################################
#
#
# FileSave.pl
#
#
#
# (C) XXX 01/2006
#
#
#
#########################################################################################################
use CGI;
use CGI::Carp qw(fatalsToBrowser);
&getVar;
#########################################################################################################
# Verarbeitung
#
#########################################################################################################
$Dateiname =~s|^.*/||;
$Dateiname =~s|^.*\\||;
if(-e "$sDir/$Dateiname")
{
&blankheader;
print "<center>Die Datei $sDir/$Dateiname ist schon
vorhanden.</center><br>\n";
print "<a href=\"DirView.pl?sDir=$sDir\"><b>zurÃ?ck</b></a>";
&footer;
}
else
{
# Dieser Code klappt nicht
# open DAT, ">$sDir/$Dateiname" or die "Fehler beim schreiben der
Datei",$!;#
# binmode $upFile;
# binmode DAT;
# my $data;
# while(read $upFile,$data,1024)
# {
# print DAT $data;
# }
# close DAT;
open UPLOADFILE, ">$sDir/$Dateiname";
binmode upFile;
while( <$upFile> )
{
print UPLOADFILE;
}
close UPLOADFILE
&header;
print "<center>Upload erfolgreich</center><br>\n";
print "<a href=\"DirView.pl?sDir=$sDir\"><b>Weiter</b></a>";
&footer;
}
#########################################################################################################
# Einlesen der POST / GET Variablen
#
#########################################################################################################
sub getVar
{
$query = new CGI;
$upFile = $query->param("file");
$Dateiname = $query->param("file");
$sDir = $query->param("sDir");
}
#########################################################################################################
# Unterroutine HTML Kopf
#
#########################################################################################################
sub header
{
print "Content-type: text/html\n\n";
print "<!DOCTYPE HTML PUBLIC \"-IETF//DTD HTML//DE\">\n";
print "<HTML>\n<HEAD>\n<TITLE></TITLE>\n";
print "<meta http-equiv=\"refresh\"
content=\"1;URL=http://newyork/cgi-bin/DirView.pl?sDir=".$sDir."\">";
print "</HEAD>\n";
}
sub blankheader
{
print "Content-type: text/html\n\n";
print "<!DOCTYPE HTML PUBLIC \"-IETF//DTD HTML//DE\">\n";
print "<HTML>\n<HEAD>\n<TITLE></TITLE>\n";
print "</HEAD>\n";
}
#########################################################################################################
# Unterroutine HTML Fuss
#
#########################################################################################################
sub footer
{
print "</HTML>\n";
}