Hey Tom,
also ich habs jetzt etwas anders versucht - das Löschen klappt auch, allerdings löscht er es, bevor der Browser das Bild überhaupt laden kann. Hat sich da ein Fehler eingeschlichen oder ist das ganze Konstrukt Müll?
Ich geb mal kurz das wesentliche wieder:
// Zufalls-Dateinamen festlegen
$tmpname = "tmpPic_".rand(100000,999999);
$tmpname = $tmpname.".png";
$_SESSION['tmpfile'] = $tmpname; // Dateinamen auch in Session speichern, damit ich in der Delete-Prozedur darauf zugreifen kann
// Etwas Code, der ein Bild mit dem Namen $tmpname erstellt...
// ...
register_shutdown_function("deleteFile");
// ENDE
function deleteFile() {
if($_SESSION['tmpfile']) {
unlink($path."/".$_SESSION['tmpfile']);
unset($_SESSION['tmpfile']);
}
}
So... da bei register_shutdown_function() keine Funktionsparameter erlaubt sind, dachte ich, ich löse das über eine Session-Variable (eine Session wird ohnehin gestartet).
Aber wie gesagt: Im Browser erscheint kein Bild. Kommentiere ich den Aufruf von unlink() aus, erscheint ein Bild. Also scheint er es zu schnell zu löschen...
Muss ich bei register_shutdown_function zwingend ein Array angeben? Oder wo ist das Problem?
Gruß
Sven