Ottimo concordo
snow24h.z2.3.jpg
Riesumo questo post
In una delle tante foscam che ho una in località remota internet prende quando vuole a volte prende il 3G e l’immagine viene caricata tagliatase prende il 4G invece è perfetta.
Ora chiedo si può aggiungere nella stringa php in modo che se il file è di ipotesi 100 Kb viene caricata se invece sotto la scarta e mantiene la vecchia .
Non so se Mi sono spiegato
Questo è il codice che uso :
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", 0, 8) == "Schedule") {
$directory[] = $file;
}
}
// chiude l'handler
closedir($handler);
// ordina la lista dei file per nome (il piu' nuovo sara' il più recente)
sort($directory);
// conta i file
$fileCount = count($directory);
$fileCount2 = $fileCount - 1;
// copia il file piu' nuovo in webcam.jpg
// $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
$index = $fileCount - 1; // era -1 modifica 24-07-2014
$fileDaCopiare = $directory[$index];
copy($fileDaCopiare, 'webcam.jpg');
// cancella tutti i file i cui nomi sono nell'array
for($index=0; $index < $fileCount2; $index++) {
$fileDaCancellare = $directory[$index];
unlink($fileDaCancellare);
}
copy('webcam.jpg','../../webcam.jpg');
?>
Davis Pro http://sacilemeteo.it
Davis Pro http://campagnola.altervista.org/davis/
Davis Vue http://solaresacile.altervista.org/davis/
Ciao, sapresti dirmi come creare un archivio su altervista? Uso lo script di orsopolare, quello che hai postato poco sottoSi anche io ho questo problema ogni tanto quando la ricezione del 4G non è buonissima. Penso si possa fare una cosa del genere, mi informo
ciao Gigi e ben ritrovato,
scusami il ritardo della risposta ma negli ultimi tempi non sto frequentando il forum, solo per caso ho dato un'occhiata e visto oggi questo tuo post.
Allora, possiamo modificare il codice inserendo nel ciclo while due variabili che leggono la dimensione del file, ovvero:
- $sizeBytes con la funzione filesize di php che restituisce la dimensione in bytes
- $sizeKb che converte quest'ultima in KB
$limitSizeKb è il valore in KB che tu imposterai come limite a tua scelta (io ho inserito ad esempio 100); per cui nel ciclo viene verificata se la dimensione del file supera tale valore e nel caso lo inserisce nell'array.
Ecco il codice aggiornato:
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');
// modificare limite grandezza file in Kb
$limitSizeKb = 100;
// apre la directory e legge i singoli nomi dei file
while ($file = readdir($handler)) {
$sizeBytes = filesize($file); // grandezza file in bytes
$sizeKb = number_format($sizeBytes / 1024, 2); // grandezza file in KB con 2 cifre decimali
// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array
if ((substr("$file", 0, 8) == "Schedule") && ($sizeKb >= $limitSizeKb)) {
$directory[] = $file;
}
}
// chiude l'handler
closedir($handler);
// ordina la lista dei file per nome (il piu' nuovo sara' il più recente)
sort($directory);
// conta i file
$fileCount = count($directory);
$fileCount2 = $fileCount - 1;
// copia il file piu' nuovo in webcam.jpg
// $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
$index = $fileCount - 1; // era -1 modifica 24-07-2014
$fileDaCopiare = $directory[$index];
copy($fileDaCopiare, 'webcam.jpg');
// cancella tutti i file i cui nomi sono nell'array
for($index=0; $index < $fileCount2; $index++) {
$fileDaCancellare = $directory[$index];
unlink($fileDaCancellare);
}
copy('webcam.jpg','../../webcam.jpg');
?>
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Grazie mille![]()
Davis Pro http://sacilemeteo.it
Davis Pro http://campagnola.altervista.org/davis/
Davis Vue http://solaresacile.altervista.org/davis/
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Problema non cancella i file/immagini nella cartella vecchi
Presumo che il problema sia qui
VecchioCodice:// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array if ((substr("$file", 0, 8) == "Schedule") && ($sizeKb >= $limitSizeKb)) { $directory[] = $file;
Codice:// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array if (substr("$file", 0, 8) == "Schedule") { $directory[] = $file; }
Davis Pro http://sacilemeteo.it
Davis Pro http://campagnola.altervista.org/davis/
Davis Vue http://solaresacile.altervista.org/davis/
Si, credo di aver capito, conviene creare allora 2 array distinti, uno delle immagini "selezionate" (directorySize) e l'altro per tutte le immagini, in modo da poterle eliminare.
Prova questo codice modificato:
Codice PHP:
<?php
header("Refresh: 60; url=" . $_SERVER["PHP_SELF"]);
// prepara gli array per i nomi dei file
$directory = array(); // tutti i file
$directorySize = array(); // solo i file a partire dal limite dimensione
// prepara l'handler per la directory
$handler = opendir('../snap');
// modificare limite grandezza file in Kb
$limitSizeKb = 100;
// apre la directory e legge i singoli nomi dei file
while ($file = readdir($handler)) {
$sizeBytes = filesize($file); // grandezza file in bytes
$sizeKb = number_format($sizeBytes / 1024, 2); // grandezza file in KB con 2 cifre decimali
// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array
if (substr("$file", 0, 8) == "Schedule") {
$directory[] = $file;
if ($sizeKb >= $limitSizeKb) {
$directorySize[] = $file;
}
}
}
// chiude l'handler
closedir($handler);
// ordina la lista dei file per nome (il piu' nuovo sara' il più recente)
sort($directory);
sort($directorySize);
// conta i file
$fileCount = count($directory);
$fileCount2 = $fileCount - 1;
$fileCountSize = count($directorySize);
$fileCountSize2 = $fileCountSize - 1;
// copia il file piu' nuovo in webcam.jpg
// $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
$index = $fileCountSize - 1; // era -1 modifica 24-07-2014
$fileDaCopiare = $directorySize[$index];
copy($fileDaCopiare, 'webcam.jpg');
// cancella tutti i file i cui nomi sono nell'array
for($index=0; $index < $fileCount2; $index++) {
$fileDaCancellare = $directory[$index];
unlink($fileDaCancellare);
}
copy('webcam.jpg','../../webcam.jpg');
?>
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Perfetto ora funziona
Grazie
sacilemeteo.it
Davis Pro http://sacilemeteo.it
Davis Pro http://campagnola.altervista.org/davis/
Davis Vue http://solaresacile.altervista.org/davis/
Segnalibri