sub bildspeichern {
# gid & file
my $gid = $main::cgi->param('gid');
my $f = $main::cgi->param('Filedata');
share::logge('gid: '.$gid);
my ($kommando, @ruckgabe);
# random filename
my @zeichen = ("a" .. "z","A" .. "Z", 0 .. 9);
my $securestring = join ("", @zeichen[map{rand @zeichen}(1 .. 8)]);
# filehash
#my $hash = Digest::MD4->new;
#$hash->add($f);
#my $filename = $hash->digest;
my $filename = join ("", @zeichen[map{rand @zeichen}(1 .. 40)]);
if($gid eq 'neu') {
chdir("./bilder");
mkdir($securestring, 0777);
chdir("..");
}
else {
$kommando = "SELECT COUNT(*) as count FROM `gal_bilder` WHERE `galid` = '".$gid."'";
$mysql::query = $mysql::db->prepare($kommando);
$mysql::query->execute || seite::fehler('500','1 mySQL meldet:
#'.$DBI::err.' - '.$DBI::errstr.'
Querycode:
'.$kommando.'
');
@ruckgabe = $mysql::query->fetchrow();
if($ruckgabe[0] > 0) {
$kommando = "SELECT `securestring` FROM `gal_bilder` WHERE `galid` = '".$gid."' LIMIT 1";
$mysql::query = $mysql::db->prepare($kommando);
$mysql::query->execute || seite::fehler('500','2 mySQL meldet:
#'.$DBI::err.' - '.$DBI::errstr.'
Querycode:
'.$kommando.'
');
@ruckgabe = $mysql::query->fetchrow();
$securestring = $ruckgabe[0];
}
else {
chdir("./bilder");
mkdir($securestring, 0777);
chdir("..");
}
}
$kommando = "INSERT INTO `gal_bilder` (`id`, `galid`, `bildname`, `securestring`, `titel`, `uploaded`) VALUES (NULL, '".$gid."', '".$filename.".jpg', '".$securestring."', '', NOW());";
$mysql::query = $mysql::db->prepare($kommando);
$mysql::query->execute || seite::fehler('500','3 mySQL meldet:
#'.$DBI::err.' - '.$DBI::errstr.'
Querycode:
'.$kommando.'
');
# save the file
open DAT,"> ./bilder/$securestring/$filename.jpg";
binmode $f;
binmode DAT;
my $data;
while(read $f,$data,1024) {
print DAT $data || share::logge("fehler beim schreiben von $data");
}
close DAT;
share::logge("$f erfolgreich gespeichert!");
print "Content-Type:text/html\n\n";
print "$f erfolgreich gespeichert!";
exit;
}