Immagini da IP camera...

  • Creatore Discussione Creatore Discussione Jago277
  • Data di inizio Data di inizio

Jago277

Nuovo Utente
23 Feb 2016
8
0
0
Salve a tutti...sono un nuovo iscritto e posto questo messaggio, sperando di non sbagliare. Ho una camera IP che posso configurare per mandare su un mio spazio web, in FTP, delle immagini ogni tot secondi che posso decidere io. Queste immagini verranno poi visualizzate su una pagina web, ma il mio problema è che la IPcam nomina le immagini sempre in modo nuovo, in base alla data e ora, nel momento in cui l'immagine viene trasferita sul server... col nome dell'immagine sempre diverso (nuovo), non posso configurare la pagina web perchè si visualizzi l'immagine sempre aggiornata e oltretutto, sul server le immagini si accumulano all'infinito. Domanda: sapreste dirmi se esiste uno script che rinomini l'ultima immagine che la IPcam invia al server sempre allo stesso modo e che, stesso script o anche altro, elimini da server le immagini precedenti, ormai obsolete???... Spero di aver descritto bene il mio problema e anche in una esaustiva risposta.
Grazie in ogni caso e saluti per tutti...
 
tra le tante cose che ci sono sul web può essere che lo script ci sia pure
qualche frequentatore del forum potrebbe averlo anche realizzato,
ma tutto sommato è una cosa abbastanza alla portata di chiunque, trattandosi di gestire il contenuto di una directory o poco più
PHP:
if ($directory_handle = opendir($directory)) // con un solo uguale

while (($FileName = readdir($directory_handle)) !== false)

unlink( $FileName );

closedir($directory_handle);
 
Ultima modifica:
ciao
una curiosità: come vengono chiamati i files immagini generate dalla telecamera?
al momento che vengono inviate il nome dovrebbe mutare es in base al momento (tempo data ora minuti secondi) in cui vengano riprese/inviate al server
 
Ciao marino51...da giorni cerco sul web qualcosa che mi sia utile per sto problema e un paio di script li avrei trovati, ma alla fine non funzionano...ne cambiano il nome all'immagine, ne eliminano dal server le vecchie immagini. Speravo che qualcuno del forum avesse già qualcosa di pronto...comunque grazie per la risposta...
 
Ciao borgo... le immagini sono chiamate nel seguente modo 00B0060028B8(EgadiSnorKam)_0_ cui segue data e orario sempre aggiornate, naturalmente...e mi è impossibile settare la IPcam in modo diverso...hai qualche dritta da darmi???....grazie comunque...ciao.
 
ciao
se possibile io imposterei il nome delle immagini iniziando con la data, ore, minuti e secondi e senza altro,separando quanto è relativo al tempo con un carattere paricolare, es
2016.02.24.14.40.37-00B0060028B8(EgadiSnorKam)_0.jpg, ancora meglio (sempre se possibile) la data ecc.. in formato timestamp
es il nome sopra corrisponderebbe a
1455457237-00B0060028B8(EgadiSnorKam)_0.jpg
se poi fosse possibile ancora togliere tutto qull'ambaradan sarebbe l'ideale 1455457237.jpg
ipotizziamo l'ideale (altrimenti ti tocca analizzare parte per parte la stringa del nome)
io farei qualcosa del genere
PHP:
<?php
$imm= "immagini/*.jpg";  //cartella e percorso dove si trovano le immagini e nome delle immagini
$immagini=glob('immagini/*.jpg'); //leggo i nomi di tutte le immagini contenute nella cartella e le metto in un array
rsort($immagini);//ordino l'array dal nome più grande al più piccolo, 1455457237 sarà posto prima di 1455457236 ecc...
$adesso=time(); //leggo il tempo attuale in timestamp (il timestamp è espresso in secondi)
//ipotizziamo di voler eleiminare le immagini più vecchie di 1 ora = 60*60 = 3600 secondi
//a te decidere quanto tempo andare indietro
$piu_vecchie=$adesso-3600;
$imm_piu_vecchie=$piu_vecchie.".jpg";//il nome del file immagine ha anche l'estenzione
//ciclo l'array per eliminare le più vecchie dal server
$k==;//setto un contatore
foreach($immagini as $immagine){
	if($immagine < $imm_piu_vecchie){
		//il nome è minore da quanto ho impostato
		unset("immagini/".$immagine);//quindi la elimino dal server
		unset( $immagini[$k];//e dall'array
	}else{
		//recenti e quindi mostro
		$data=str_replace(".jpg", "", $immagine);//tolgo l'estenzione per trovare il timestamp
		$data=date("d/m/Y H:i:s", $data);//trasformo il timestam in data comprensibile
		//1455457237 diventa 24/02/2016 14:40:37
		echo "<p><img src=\"immagini/$immagine\" data ripresa: $data</p>";
	}
	$k++;
}
?>

comunque devi provarlo perchè l'ho buttato giu di getto e poi dipende da come puoi impostare i nomi dei files
 
Ciao...purtroppo da tutto quell'ambaradan, come dici tu, posso togliere solo (EgadiSnorKam) che è il nome che ho dato alla telecamera...la serie di numeri che precedono, sarebbe l'ID della telecamera e sia questo che data appresso, non posso proprio modificarla...pensandoci avrei spazzio illimitato sul server, quindi l'accumulo di immagini magari è una cosa secondaria, ma il nome dei file jpg che cambia ad ogni upload proprio mi blocca...comunque grazie ancora per l'interesse...ciao.
 
Ciao marino...scusa, ma a questa tua domanda non so rispondere, comunque il mio spazio web è su arubabusiness, se ti può servire...ciao.
 
Buongiorno borgo...come hai chiesto, posto il nome completo del file jpg che genera la mia IP cam. 00B0060028B8(EgadiSnorKam)_0_20160225042415_0.jpg la parte fra parentesi è l'unica che posso modificare, il resto è generato in automatico e non ci si può intervenire...la parte prima della parentesi è l'ID della IP cam, dopo la parentesi, lo "0" fra i trattini bassi non so cos'è e non cambia mai, segue la data, partendo dall'anno fino ai secondi, al momento dell'upload...infine, dopo l'ultimo trattino basso lo "0.jpg" è il numero dell'immagine...le altre saranno con orario aggiornato e "1.jpg", "2.jpg"...etc.et.
Graie borgo e buona giornata a tutti...ciao.
 
Ultima modifica:
ciao
visto che non puoi togliere l'ambaradan, prova così (al massimo non funziona)
PHP:
<?php
$imm= "immagini/*.jpg";  //cartella e percorso dove si trovano le immagini e nome delle immagini
$immagini=glob('immagini/*.jpg'); //leggo i nomi di tutte le immagini contenute nella cartella e le metto in un array
rsort($immagini);//ordino l'array dal nome più grande al più piccolo, 1455457237 sarà posto prima di 1455457236 ecc...
$adesso=time(); //leggo il tempo attuale in timestamp (il timestamp è espresso in secondi)
//ipotizziamo di voler eleiminare le immagini più vecchie di 1 ora = 60*60 = 3600 secondi
//a te decidere quanto tempo andare indietro
$piu_vecchie=$adesso-3600;
//ciclo l'array per eliminare le più vecchie dal server
$k=0;//setto un contatore (avavo fatto un errore di copy/paste
foreach($immagini as $immagine){
    //00B0060028B8(EgadiSnorKam)_0_20160225042415_0.jpg
	$div=explode("_",$immagine);
	/*$div[0] = 00B0060028B8(EgadiSnorKam)
	  $div[1] = 0
	  $div[2] = 20160225042415 => 2016 02 25 04 24 15 => aa mm gg h m s
	  $div[3] = 0.jpg
	*/
	//substr ( string $string , int $start [, int $length ] )
	//poi li forzo a numero intero perchè mktime vuole interi
	$aa=(int)substr($div[2], 0, 4);
	$mm=(int)substr($div[2], 4, 2);
	$gg=(int)substr($div[2], 4, 2);
	$h=(int)substr($div[2], 6, 2);
	$m=(int)substr($div[2], 8, 2);
	$s=(int)substr($div[2], 10, 2);
	$data_imm=mktime ($h, $m, $s, $mm, $gg, $aa);//timestamp
	if($data_imm < $piu_vecchie){
        //il nome è minore da quanto ho impostato
        unset("immagini/".$immagine);//quindi la elimino dal server
        unset( $immagini[$k];//e dall'array
    }else{
        //recenti e quindi mostro
        $data=date("d/m/Y H:i:s", $data_imm);//trasformo il timestam in data comprensibile
        //il time stamp diventa 25/02/2016 04:24:15
        echo "<p><img src=\"immagini/$immagine\" data ripresa: $data</p>";
    }
    $k++;
}
?>
è quasi uguale al precedente, aggiuna la parte per analizzare il nome del file
 
Ultima modifica:
Ciao borgo e molte grazie per lo script...più tardi provo e poi ti farò sapere...gentilissimo!!!...ciao.
 
Salve a tutti e ciao borgo... mi faccio vivo dopo un po di tempo per cose private... ho provato e riprovato in tuo script, borgo, ma purtroppo senza risultati, ma forse ho complicato io il tutto nel configurarlo per le mie esigenze... lo script è un po complesso per le mie capacità e mi sa che l'ho "infettato" troppo... mi riprometto di riprovarci a mente più serena... grazie ancora e saluti...
 
ciao
non sono sicuro che anche il mio script funzionasse non avendolo provato.
comunque posta eventualmente quello che hai fatto e, se te li da, gli errori che riporta php
 

Discussioni simili