Hallo!
Ich habe folgendes Problem und bisher keine funktionierende Lösung gefunden: Auf einer per Perl-Skript generierten Seite finden sich Thumbnails von Bildern, die auf detaillierte Dateiinformationen weiterverlinken. Damit sich die Bilder (bzw. generell beliebige Dateien, aber für Bilder halte ich eine Vorschau einfach praktisch) nicht jeder einfach per URL ansehen kann, ist die Quelle der Thumbnails ein Perl-Skript, dem eine ID des Bildes übergeben wird. Das Skript prüft erstmal, ob der (sich vorher authentifizierte) Benutzer auch die Rechte besitzt, sich diese Bilder anzusehen, bevor er das Bild ausgibt.
Soweit funktioniert alles wunderbar. Der Knackpunkt bei der Geschichte ist aber, dass bei jedem Thumb ein neuer Perl-Prozess gestartet werden muss und viele Aufgaben, wie das Überprüfen der Rechte, unnötig häufig stattfinden und das Laden dementsprechend langsam vorangeht.
Auf der Suche nach einer passenden Lösung bin ich auf den MIME-Typ multipart gestoßen und habe versucht, dies zu implementieren. Der Testcode schaut wie folgt aus:
#-------------------------------------------------------------
print "Content-type: multipart/mixed; boundary="newpart"\n\n";
print "--newpart\n";
print "Content-type: text/html\n\n";
print "hallo, dies ist ein kleiner test\n\n";
print "--newpart\n";
print "Content-type: image/jpeg\n\n";
open(FILE,"</data/temp/testbild.jpg") || die "fehler";
binmode(FILE);
binmode(STDOUT);
while(read(FILE, $buffer, 1024)) {
print $buffer;
}
close(FILE);
#-------------------------------------------------------------
Leider scheint kein Browser diesen MIME-Typus zu unterstützen =(
Gibt es denn eine andere, vielleicht elegantere, Lösung, dies umzusetzen, ohne den vorher angesprochenen Mehraufwand leisten zu müssen? Ich würde außerdem gerne bei Standard-Perl bleiben und nicht auf Dinge wie mod_perl oder fast-cgi ausweichen müssen.
Vielen Dank schonmal im Voraus,
Max