webcam ip su internet

macavity66

Nuovo Utente
26 Apr 2011
14
0
0
Premetto che sono un neofita...

ho una webcam ip che integra un software ftp, in pratica invia direttamente i fotogrammi via ftp al mio sito.

Il problema è che le immagini hanno un formato particolare e sono sequenziali, quindi numero di immagine e data con orario.

esempio di un'immagine "000DC5D1F955(CamPat)_0_20110417212959_23"
mac address(nome webcam)_0_data e ora_numero fotogramma

Mi servirebbe uno script che mi permetta di visualizzare l'ultima immagine uploadata nella cartella images nel sito.

Grazie in anticipo!

Pat
 
Puoi visualizzare l'immagine creata più recentemente. Dovresti poter fare una cosa del genere:
PHP:
<?php
$files = glob('*.jpg');
$mtimes = array();

foreach ($files as $f) {
    $mtimes[] = filemtime($f);
}

$files = array_combine($mtimes, $files);
ksort($files);

$last = $files[count($files) - 1];

echo "<img src=\"{$last}\" />";
?>
Non l'ho testato, ma dovrebbe funzionare. Fammi sapere.
 
Grazie, provo questa sera, pero' ho un dubbio, dove indico nello script il nome della cartella dove sono uploadate le immagini della webcam?
 
Qui:
PHP:
$files = glob('*.jpg');
Devi sostituire il parametro di glob con il corretto percorso. Sostituisci anche l'estensione, se è diversa. Se ad esempio le immagini si trovano nella cartella img e hanno formato PNG, scriverai:
PHP:
$files = glob('img/*.png');
 
Non mi e' chiaro il discorso del percorso, nello spazio web dato che e' un dominio di primo livello la cartella images e' in nome dominio\images quindi cosa intendi come percorso da inserire al posto di glob?
 
ho trovato questo ma non funziona: nel sito web compare il riquadro dove dovrebbe apparire l'immagine però l'immagine non viene visualizzata. il link all'immagine è questo:

http://www.parapendionline.com/images/<?php echo $arrayfile[0]; ?>

HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nuova pagina 1</title>
</head>

<body>
<?php 

$arrayfile = Array();

function ordina($file1,$file2)
{
$tempo1 = explode('_',$file1);
$tempo1 = $tempo1[3];

$tempo2 = explode('_',$file2);
$tempo2 = $tempo2[3];

return ($tempo1 < $tempo2) ? 1 : -1;
}
if ($handle = opendir('http://www.parapendionline.com/images/'))
{

while (false !== ($file = readdir($handle)))

{
if ($file != "." && $file != "..") {
$arrayfile[]=$file;

}

}

closedir($handle);
usort($arrayfile,'ordina');

}

?>


<HTML>
<HEAD>
<TITLE>webcam</TITLE>

<SCRIPT language="JavaScript">
function doRefresh() {
// refresh della pagina corrente
document.location.reload();
}
// imposto il timeout per il prossimo refresh
// espresso in millisecondi (1000 = 1 secondo)
window.setTimeout("doRefresh();", 10000);
</SCRIPT>

</HEAD>
<BODY>
<p align="center"><img src="http://www.parapendionline.com/images/<?php echo $arrayfile[0]; ?>" width="640" height="480"></p>

</BODY>
</HTML>


</body>

</html>
 
il server è perferttamente funzionante... ho guardato il manuale e ho visto che lo script che hai scritto non era chiuso, l'ho modificato ma non funziona ugualmente.
Se hai voglia e tempo provi a guardarmi quello che ho postato prima?

grazie
 
usa i percorsi relativi, non quelli assoluti, inoltre, cosa ti stampa:
PHP:
<?php echo $arrayfile[0]; ?>

nell'HTML?
 
scusami, dove inserisco la riga che mi hai postato?

Per quanto riguarda la risposta dal sito è semplicemente il riquadro dove dovrebbe apparire l'immagine, se clicco tasto destro nel riquadro mi da il link relativo alla stringa

HTML:
<img src="http://www.parapendionline.com/images/<?php echo $arrayfile[0]; ?>" width="640" height="480">
 
Beh, mi sembra evidente che c'è qualcosa che non va. Il mio script era perfettamente chiuso, così come quello di Eliox, anche se nel mio, effettivamente, c'era un errore. Ciò non toglie che avrebbe dovuto visualizzare un errore.

Prova questa versione, che ho testato personalmente:
PHP:
<?php
$files = glob('*.jpg');
$mtimes = array();

foreach ($files as $f) {
    $mtimes[] = filemtime($f);
}

$files = array_combine($mtimes, $files);
ksort($files);

$last = array_values($files);
$last = $last[count($last) - 1];

echo "<img src=\"{$last}\" />";
?>
 
perdonami, ma evidentemente mi sfugge qualcosa.

Edito la pagina web in questione
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nuova pagina 1</title>
</head>

<body>
<?php
$files = images('*.jpg');
$mtimes = array();
 
foreach ($files as $f) {
    $mtimes[] = filemtime($f);
}
 
$files = array_combine($mtimes, $files);
ksort($files);
 
$last = array_values($files);
$last = $last[count($last) - 1];
 
echo "<img src=\"{$last}\" />";
?>
</BODY>
</HTML>


</body>

</html>

cambio glob con il nome della cartella dove sono contenute le immagini "images"

Salvo e pubblico la pagina di nome index.htm nella root del dominio.

risultato, nella pagina aperta sia con mozilla che explorer appare solo questo:

"; ?> in alto a destra...
 
il sito è appoggiato su aruba e supporta il php, infatti altri script che ho messo per altre cose funzionano...

quello che mi hai mandato adesso mostra una pagina bianca...
 
scusami ma i conti non tornano... Io ho inserito altri script nelle pagine htm e funzionano, se salvo una di queste pagine in php non si apre nemmeno....
 
La configurazione del tuo hosting è quantomai singolare. Ti consiglio di rivolgerti direttamente all'assistenza tecnica, perché è una situazione assurda quella in cui ti trovi... Anzi, in realtà ti consiglio di cambiare hosting.
 

Discussioni simili