doch
hier mal mein script
#!/usr/bin/perl -wT
use strict;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
use File::Basename;
$CGI::POST_MAX = 1024 * 100000;
my $query = new CGI;
my $filename = $query->param("file");
my $upload_dir = $query->param("osupload");
my $refresh = $query->param("refresh");
my ( $name, $path, $extension ) = fileparse ( $filename, '\..*' );
$filename = &MakeFilename($name) . $extension;
my $upload_filehandle = $query->upload("file");
open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle> ){
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ( );
print <<END_HTML;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Thanks!</title>
<style type="text/css">
img {border: none;}
</style>
<script>window.location.href = "$refresh";</script>
</head>
<body>
<p>Thanks for uploading your file!</p>
</body>
</html>
END_HTML
exit;
sub MakeFilename {
my $file = shift;
$file =~ s/\xc3(.)/chr(ord($1) + 0x40)/eg;
$file =~ s/[äÄ]+/ae/g;
$file =~ s/[öÖ]+/oe/g;
$file =~ s/[üÜ]+/ue/g;
$file =~ s/ß/ss/g;
$file =~ tr/ /_/;
$file =~ s/[^a-zA-Z0-9\-\._-]+//gi;
$file = lc($file);
return $file;
}