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; }