Moin Moin!
Danke Alexanter!
siehe Thema. Max_Size ist 0.7 MB/File.
Wer garantiert diese Maximalgröße?
Mein Script.
Die Dateien werden im ASCII-Zeichensatz (Base64_encode, _decode) in ein Textfeld geschrieben. Damit bin ich unabhängig vom verwendeteten Zeichensatz, den die RDMS spricht (in meinem Fall mySQL).
Und Du hast 33% Overhead.
Das kann ich nicht nachvollziehen. Die ASCII-Datei ist exact genauso groß wie die binary-Datei. Wo genau liegt denn der Overhead? Im RDBMS Text vs. Blob?
Viele Grüße,
Hotte
Stück Script:
- Content-Type liefert der User-Agent,
- Dateigröße ist nach base64_encode genauso groß.
sub upload{
my $fqd_filename = $q->param('file') or cgiError("Keine Datei","Backbutton...");
fileparse_set_fstype("MSDOS");
my ($ori_filename, $local_path) = fileparse $fqd_filename;
my $mime_type = $q->uploadInfo($fqd_filename)->{'Content-Type'};
my ($str,$buffer,$sum,$bytesread);
while ( $bytesread = read($fqd_filename,$buffer,1024)) {
$str .= $buffer;
$sum += $bytesread;
cgiError("Datei zu dick") if $sum > $maxsize;
}
$sum or cgiError("0 Bytes, Abbruch","Backbutton...");
$str = encode_base64($str);
# nun die Tabelle beschreiben
my $description = ($q->param('description')) ? $q->param('description') : 'NA';
$description = $dbh->quote($description);
$dbh->do("INSERT INTO filebase VALUES('', '$ori_filename', $description, '$sum', '$mime_type', '$str')") or cgiError($dbh->errstr);
redir($ENV{SCRIPT_NAME});
}