1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| sub Upload
{
my($fich) = @_;
my($file_query, $file_name, $size, $buff, $time, $bytes_count, $upload_dir);
$size = $bytes_count =0;
# RECUPERATION DU DESCRIPTEUR DU FICHIER UPLOADE
print "fichier : $fich<br>"; #Affichage de "FONCTION" au lieu du nom de 'carte.ppt'
$_ = $file_query = $fich;
# RÉCUPÉRATION DU NOM DU FICHIER
s/\w://;
s/([^\/\\]+)$//;
$_ = $1;
s/\.\.+//g;
s/\s+//g;
$file_name = $_;
print "file_name : $file_name<br>"; #Affichage de "FONCTION" au lieu de 'carte.ppt'
if(($file_name=~ /\.doc/) || ($file_name=~ /\.DOC/)) {
$upload_dir = "/projects/doc/";
} elsif (($file_name=~ /\.bmp/) || ($file_name=~ /\.BMP/)) {
$upload_dir = "/projects/bmp/";
} $upload_dir = "/projects/gb/";
} elsif (($file_name=~ /\.gif/) || ($file_name=~ /\.GIF/)) {
$upload_dir = "/projects/gif/";
} elsif (($file_name=~ /\.htm/) || ($file_name=~ /\.HTM/) || ($file_name=~ /\.html/) || ($file_name=~ /\.HTML/)) {
$upload_dir = "/projects/htm/";
} elsif (($file_name=~ /\.jpg/) || ($file_name=~ /\.JPG/) || ($file_name=~ /\.jpeg/) || ($file_name=~ /\.JPEG/)) {
$upload_dir = "/projects/jpg/";
} elsif (($file_name=~ /\.pdf/) || ($file_name=~ /\.PDF/)) {
$upload_dir = "/projects/pdf/";
} elsif (($file_name=~ /\.ppt/) || ($file_name=~ /\.PPT/) || ($file_name=~ /\.pps/) || ($file_name=~ /\.PPS/)) {
$upload_dir = "/projects/ppt/";
} elsif (($file_name=~ /\.txt/) || ($file_name=~ /\.TXT/)) {
$upload_dir = "/projects/txt/";
} elsif (($file_name=~ /\.rtf/) || ($file_name=~ /\.RTF/)) {
$upload_dir = "/projects/rtf/";
} elsif (($file_name=~ /\.tif/) || ($file_name=~ /\.TIF/)) {
$upload_dir = "/projects/tif/";
} else {
$upload_dir = "/projects/divers/";
}
if (! $file_name)
{
$_ = "Error: Nom de fichier 'Value_FileName' incorrect";
s/Value_FileName/$file_name/ig;
&Error($_, 1);
}
# TEST DE L'EXISTANCE DU FICHIER SUR LE SERVEUR
if (-e "$upload_dir/$file_name")
{
$_ = "Error: Fichier 'Value_FileName' existant, impossible de le modifier!";
s/Value_FileName/$file_name/ig;
&Error($_, 1);
}
# OUVERTURE DU NOUVEAU FICHIER SUR LE SERVEUR
open(FILE,">$upload_dir/$file_name") || &Error("Error opening file $file_name for writing, error $!", 1);
binmode FILE;
$time=time();
# LECTURE DU DESCRIPTEUR ET ÉCRITURE DANS LE NOUVEAU FICHIER SUR LE SERVEUR
while ($bytes_count = read($file_query,$buff,2096))
{
$size += $bytes_count;
print FILE $buff;
}
close(FILE);
# ON VÉRIFIE SI LA COPIE EST CORRECTE
if ((stat "$upload_dir/$file_name")[7] <= 0)
{
print "<br>$upload_dir"."$file_name<br>";
unlink("$upload_dir/$file_name");
$_ = "Error: Erreur de chargement de 'Value_FileName'"; # Affichage de "Error: Erreur de chargement de 'FONCTION'"
s/Value_FileName/$file_name/ig;
&Error($_, 1);
}
else
{
$time = time -$time;
$_ = "Chargement réussi !";
s/Value_FileName/$file_name/ig;
s/Value_Size/$size/ig;
s/Value_Time/$time/ig;
#&ResutPage($NAME_TITLE{'Upload_Succes'}, $_);
}
} |