Ciao a tutti,
per visualizzare sul mio sito le immagini della mia webcam Foscam FI9900P sto utilizzando lo script php che vedete più in basso. Tale script non è stato realizzato da me, ma mi sono limitato ad implementarlo sul server. In particolare, esso trova l'ultima immagine caricata sul server dalla webcam e ne fa una copia dal nome webcam.jpg.
Quello che vorrei fare io è organizzare in cartelle, all'interno del server, le immagini che vengono caricate, ovvero dedicare una cartella ad ogni giorno.
Le immagini vengono caricate con nomi del tipo: "Schedule_20180118-235936.jpg", cioè "Schedule_anno mese giorno-ora minuti secondi.jpg", e stanno tutte nella stessa cartella ove è situato il file .php. E' possibile realizzare ciò?

Ho poi un'altra domanda: ho notato che quando la webcam carica un'immagine corrotta, come quella allegata, lo script, pur rinominandola webcam.jpg, non la mostra. Vorrei capire come fa lo script ad "accorgersi" che l'immagine è corrotta, perché ad ogni modo tali immagini vengono caricate e i files non sono danneggiati, ma possono essere aperti dai programmi del pc. Quello che vorrei fare è, in caso che vengano caricate foto del genere, cancellarle.

Grazie in anticipo
Aiuto script PHP per Foscam-schedule_20180120-163536.jpg




Codice PHP:

<?php
    header
("Refresh: 60; url=" $_SERVER["PHP_SELF"]);
    
// prepara l'array per i nomi dei file
    
$directory = array();


    
// prepara l'handler per la directory
    
$handler opendir('../snap');


    
// apre la directory e legge i singoli nomi dei file
    
while ($file readdir($handler)) {


    
// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array
      
if (substr("$file"08) == "Schedule") {
        
$directory[] = $file;
      }


    }


    
// chiude l'handler
    
closedir($handler);


  
// ordina la lista dei file per nome (il piu' nuovo sara' l'ultimo)
  
sort($directory);


  
//  conta i file
  
$fileCount  count($directory);


  
// copia il file piu' nuovo in webcam.jpg
  // $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
  
$index $fileCount 1;
  
$fileDaCopiare $directory[$index];
  
copy($fileDaCopiare'webcam.jpg');



$nome_immagine="webcam.jpg";         // file contenente l'immagine
$nome_testo="testo.txt";         // file contenente le scritte


$fp fopen($nome_testo,"r")
  or die(
"impossibile aprire il file testo.txt.");
$testo_sinistra=fgets($fp,100);         // nella prima riga la scritta allineata a sinistra
$testo_destra=fgets($fp,100);         // nella seconda riga la scritta allineata a destra
if ( $testo_destra "data" )
  {
  
setlocale(LC_TIME,"it_IT");
  
$testo_destra=strftime ("%a %d %b %Y %H:%M:%S"filemtime($nome_immagine));
  }
fclose($fp);


header("Content-type: image/png");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");


header("Content-type: image/jpeg");


$im  imagecreatefromjpeg($nome_immagine);
//$black = imagecolorallocate($im, 0, 0, 0);
//$white = imagecolorallocate($im, 255, 255, 255);
$colore_barra imagecolorallocate($im10255);      // colore della barra formato RGB
$colore_testo  imagecolorallocate($im255255255);   // idem per testo
$x=imagesx($im);
$y=imagesy($im);


$font "VeraBd.ttf";
$size 18;                     // dimensione del testo
$altezza_barra 38;                  // dimensione della barra




imagefilledrectangle($im0$y-$altezza_barra$x-1$y-1$colore_barra);


$bbox imagettfbbox ($size0$font$testo_sinistra);
$dy  = (($bbox[1] - $bbox[7]) / 2);
imagettftext($im$size05$y-($altezza_barra 2) + $dy 1$colore_testo$font$testo_sinistra);
 
$bbox imagettfbbox ($size0$font$testo_destra);
$dx  = ($bbox[2] - $bbox[0]);
imagettftext($im$size0$x-5-$dx$y-($altezza_barra 2) + $dy 1$colore_testo$font$testo_destra);


$info getimagesize($nome_immagine);                  //carica immagine  

imagejpeg($im);
imagejpeg($im);
imagedestroy($im);
?>