Feststellen ob JPG vollständig auf den Server geladen ist
Martin aus Wien
- php
Hallo alle,
in ein Verzeichnis auf dem Server wird ca. alle 3 Sekunden ein neues Bild hochgeladen. Das neueste Bild soll auf einer Webseite erscheinen, natürlich ohne dass dauernd die Seite refreshed wird.
Also habe ich eine Datei request.htm geschrieben, die jede Sekunde mit XMLHttpRequest die Datei getimage.php aufruft:
<?php
$images = array();
$dir = "../live_images";
if ($dh = opendir($dir)) {
while (false !== ($file = readdir($dh))) {
if (eregi(".jpg$",$file)) {
$images[filemtime($dir."/".$file)]=$file;
}
}
closedir($dh);
}
ksort($images);
$last_image = array_pop($images);
$last_image = array_pop($images);
header("Content-type: text/plain");
print($last_image);
?>
Dass hier zweimal die Zeile
$last_image = array_pop($images);
vorkommt, ist eine Notlösung. So krieg ich zwar nur das vorletzte Bild, aber es funktioniert. Wenn ich versuche, das letzte Bild zu kriegen, erwische ich es oft, während es noch hochgeladen wird, und dann habe ich entweder ein x auf dem Bildschirm oder ein unvollständiges Bild. Manchmal kommt beim nächsten Bild alles wieder in Ordnung, manchmal hängt sich die ganze Sache einfach auf.
Wie kann ich also feststellen, ob ein JPG schon vollständig ist oder noch hochgeladen wird?
Vielen Dank und Grüße
Martin
Hm, ich versuch mal, mit getimagesize() zu testen, ob es ein gültiges JPG ist.
Wie wäre es, 2 versch. Verzeichnisse zu verwenden und nach dem Uploadvorgang das Bild in das "Ausgabeverzeichnis" verschieben zu lassen?
Auch nicht schlecht. Danke!
Martin