Avatar billede mungojerrie Nybegynder
10. juni 2010 - 20:47 Der er 15 kommentarer og
1 løsning

slet filer i folder og omdøb fil

hej alle

jeg har et webcam som kan tage snapshots og uploade disse til en hjemmeside og jeg vil så gerne vise disse snapshots på hjemmesiden, dog kun den nyeste.

webcam'en tager et billede hvert 15 sek. og navngiver dem lidt kryptisk. Listen af filer kan se sådan ud, listet efter dato for opret. tidspunkt:

233440_6.jpg
233510_6.jpg
233540_8.jpg
233610_9.jpg
233641_4.jpg

Jeg tænker jeg kan have et php script til at slette alle filer pånær de 2 sidste/nyeste og omdøbe filerne til noget mere brugbart.


Til at vise selve billedet på hjemmesiden vil jeg så benytte javascript som så reloader billedet og hvis scriptet ikke kan finde et billede med det navn der forventes, kan den loade den forrige igen. Det kan jo være php scriptet er igang med at slette/omdøbe.

Hvad siger I til sådan en løsning? gode ideer modtages :-)
Avatar billede majbom Novice
10. juni 2010 - 20:58 #1
er der nogen sammenhæng mellem navn og alder på filen?
Avatar billede mungojerrie Nybegynder
10. juni 2010 - 21:02 #2
nej ikke en der lige springer i øjnene og har ikke kunnet finde noget i opsætningen af webcam'en, der tillader jeg ændrer navngivningen....
Avatar billede mungojerrie Nybegynder
10. juni 2010 - 21:02 #3
det er forøvrigt et trendnet webcam, model TV-IP110.....
Avatar billede tsoelberg Nybegynder
10. juni 2010 - 21:54 #4
Er ikke programmør, så kan ikke hjælpe på det område.. Men har en idé om hvad man kunne gøre..

Ved at lave en app der går ind og ser hvornår de givende filer er oploadet til ftp'en, det giver da en indikation om billedets alder.. :)
Avatar billede tjens Nybegynder
10. juni 2010 - 23:12 #5
Gem dette script på din server under navnet snapshot.php

<?php
  $max = 0;
  $snap = "";
  $fileArray = glob('./imagedir/*.jpg');
  // Find newest file
  foreach($fileArray as $filename){
    if (filemtime($filename) > max) {
      $max = filemtime($filename);
      $snap = $filename;
    }
  }
  // Delete old files
  foreach($fileArray as $filename){
    if ($filename != $snap) {
      unlink($filename);
    }
  }
  // Return newest image
  header ('Content-length: ' .filesize($snap));
  header ('Content-type: image/jpeg');
  readfile ($snap);
  exit(0);
?>
Tilret ./imagedir/ til din billedfolder.

Og ret så til src="snapshot.php" på dit img-tag.

Så vil der blive ryddet op i folderen, hver gang siden vises,  og samtidig vil nyeste billede blive returneret til img-tagget.
Avatar billede tjens Nybegynder
10. juni 2010 - 23:13 #6
Rettelse: Der er en max uden $ ovenfor.
Avatar billede Slettet bruger
10. juni 2010 - 23:15 #7
Er det ikke tidspunkter: klokken 23:34:40_løbenummer ?
Avatar billede Slettet bruger
10. juni 2010 - 23:21 #8
Nå, så ikke tjens' løsning, med filetime() er det jo ligemeget hvad de hedder : )

MEN - hvis du glemmer at åbne "snapshot.php" i en uges tid - fylder du hele disken.

OG - hvorfor slette billeder du ikke engang har set ?!?
Avatar billede mungojerrie Nybegynder
10. juni 2010 - 23:30 #9
@tjens
ikke tosset med det script, kan den også håndtere en folder under mit "imagedir" som bliver døbt med dagsdato

@t4nk3r
ja, det er naturligvis klokkeslettet uden "adskiller" :-)
Avatar billede majbom Novice
11. juni 2010 - 08:27 #10
ja tænkte osse på om det var klokkeslet, men #0 skrev bare at der blev taget et billede hvert 15. sekund og på listen så det ud som om de blev taget hvert 30. sekund, så derfor spurgte jeg :)

men kan dog heller ikke helt se ideen i at slette dem der ikke er blevet set...
Avatar billede mungojerrie Nybegynder
11. juni 2010 - 09:25 #11
jeg vil nok heller ikke lave helt samme løsning som angivet, men logikken bag at finde den seneste fil og lave oprydningen kan jeg bruge med lidt modifikation
Avatar billede majbom Novice
04. november 2010 - 14:05 #12
fik du løst det?
Avatar billede mungojerrie Nybegynder
09. november 2010 - 11:31 #13
ja, jeg lavede lidt en anden løsning
Avatar billede majbom Novice
09. november 2010 - 12:05 #14
super, husk at lukke spørgsmålet og post gerne løsningen, så andre kan få glæde af den...
Avatar billede mungojerrie Nybegynder
16. februar 2011 - 18:40 #15
svar
Avatar billede majbom Novice
16. februar 2011 - 18:47 #16
hvad var løsningen så?
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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