• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

neuste Datei (jpeg Bild) aus einem Verzeichnis laden

jack.x

Neues Mitglied
Von wegen alter Thread... :)
Das Thema scheint aktueller denn je und mich erreichen häufig Fragen, wie es denn nun letztendlich bei mir funktioniert.

Also hier nochmal die Zusammenfassung

Hier das eigentliche Script allein für die Anzeige des Bildes:

<?php
$dir = "";
$date = date("Y-m-d");
$dir = "$date/Capture/";
$images = glob($dir . "*.jpg");
rsort($images);
$newestimg = "$images[0]";
header('Content-Type:image/jpeg');
header('Content-Length: ' . filesize($newestimg));
readfile($newestimg);
?>


Meine Kamera legt die Bilder z.B. heute im Verzeichnis ../2021-12-20/Capture ab. Daher ermittele ich zuerst das aktuelle Datum und stelle es als Directory Name in die Variable $dir. Ein typischer Dateinamen ist dann z.B. 14_43_24_459.jpg. Wenn die Millisekunden nicht wären, dann könnte man den Namen auch einfach mit der aktuellen Uhrzeit erzeugen, aber die Millisekunden sind praktisch zufällig (übrigens der beste Zufallsgenerator überhaupt, falls ich so etwas mal benötigt). Dann werden alle *.jpg ein Array $images eingelesen, mit rsort sortiert, $images[0] ist dann das neuste Bild ist. Mit header('Content-Type:image/jpeg') und readfile($newestimg) erfolgt schliesslich die Anzeige.

Im HTML Dokument rufe ich das Script mit folgender Zeile auf:

<p><img width="100%" alt="Webcam Bild" src="http://www.holiday-rentals-bacharach.com/newestimg.php" /></p>

Bei weiteren Fragen, entweder hier melden, oder auch gerne per Email über meine Webseite.

Gruß Jack.X
 

m.scatello

Senior HTML'ler
Und hier eine schönere Variante:
PHP:
<?php
  $dir = date("Y-m-d") . "/Capture/";
 
  $images = glob($dir . "*.jpg");
 
  $image = array_pop($images);
 
  header('Content-Type:image/jpeg');
  header('Content-Length: ' . filesize($image));
 
  readfile($image);
?>
 

jack.x

Neues Mitglied
Und hier eine schönere Variante:
...
Es war mir klar das es bei meinen nicht existierenden PHP-Kenntnisse sicherlich noch Raum für Verbesserungen gibt.
Ich kann schon programmieren, verstehe auch was ich da tue, aber ich habe nie PHP gelernt. Ich war also froh als ich schliesslich alle Syntax-Errors ausgemerzt hatte und es endlich funktionierte.

Vielen Dank. Das werde ich ausprobieren.
 
Zuletzt bearbeitet:
Werbung:
Oben