Avatar billede BHG Novice
01. september 2017 - 20:08 Der er 2 kommentarer

Se nyeste billede fra IP-kamera

Jeg har et IP-kamera, der skal sidde på en privat flyveplads. Kameraet sender hvert 10. sekund via ftp et billede til en hjemmeside. Hvis man på hjemmesiden klikker på [Webcam], skal man se det nyeste billede, der er uploadet. Tidligere virkede systemet med et almindeligt webcam, der var tilsluttet en PC, der kørte 24/7/365. Det system sendte en billede, der hed webcam.jpg og det overskrev bare det billede, der lå der i forvejen. Det nye kamera sender billeder med flg. navn:
"webcam_744285817_20170901132402614_TIMING.jpg" jeg kan kun ændre på "webcam", men resten kan jeg ikke ændre på eller slippe for.
Nye billeder får selvfølgelig nye tidsangivelser i navnet, så der sker ingen overskrivning.
Det, jeg har brug for, er et script, der gør flg. når der bliver klikket på [Webcam] på hjemmesiden:
Tag den nyeste fil i mappen files/, omdøb den til webcam.jpg og kopier den til roden, hvor det tidligere billede bliver overskrevet.
Jeg har styr på, at mappen files ikke bliver fyldt op med billeder med dette:

<?php
$dir = getcwd()."/files/";//dir absolute path
$interval = strtotime('-1 hours');//files older than 24hours

foreach (glob($dir."*") as $file)
    //delete if older
    if (filemtime($file) <= $interval ) unlink($file);
    ?>

    <?php
echo "Hentet slettet";

?>

Jeg kan ikke selv skrive kode (ville gerne), men jeg kan rette det lidt til.
Siden er hostet hos one.com og er skrevet i PHP.
Jeg håber, at der er én, der vil hjælpe mig.
På forhånd tak.
Avatar billede jakobdo Ekspert
01. september 2017 - 21:31 #1
Fandt dette via google og tilpassede det lidt:

function getLatestImage($folderName) {
    $newest_mtime = 0;
    $base_url = 'webcam_folder/'.$folderName;
    $show_file = 'webcam_images/webcam.jpg';
    if ($handle = opendir($base_url)) {
        while (false !== ($latestFile = readdir($handle))) {
            if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess')) {
            $mtime = filemtime("$base_url/$latestFile");
                if ($mtime > $newest_mtime) {
                    $newest_mtime = $mtime;
                    $show_file = "$base_url/$latestFile";
                }
            }
        }
    }
    return $show_file;
}

Tror det burde kunne bruges.
Avatar billede BHG Novice
02. september 2017 - 08:40 #2
Tak for forslaget, jeg tester det i aften.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester