4
Good guys, I have a system, where practically daily uploads are sent via pdf files. After a while it has a lot of accumulated file.
For example: Upo 100 PDF hj files, tomorrow I put 20. So, from the day I skipped the 100 PDF files, after 3 months it erases those 100.. the next day the same scheme and erases the 20 and so on, but it is not erased all at once.
Any idea or help?
Thanks in advance!
I have this PHP programming below,
<?php
$dateFormat = "d-m-Y H:i:s";
$dir = 'uploads/*/*';
if(isset($_POST['excluir'])){
if($objs == glob($dir)) {
foreach($objs as $obj) {
if (is_dir($obj)) continue; // Verifica se o arquivo é um diretório, se for, tudo que está abaixo é desconsiderado
$dateFile = strtotime(date($dateFormat, filemtime($obj))); // Data da última modificação do arquivo convertida em time;
$dateToRemove = strtotime(date($dateFormat, filemtime($obj) + (60 * 5))); // Tempo da última modificação + 3 meses convertida em time;
if($dateFile >= $dateToRemove) unlink($obj); // Exclui o arquivo se este possuir 03 meses desde a última modificação
}
}
}
?>
Button:
<button class="btn btn-danger" name="excluir" onclick="return confirm('Tem certeza que deseja apagar todos os Boletos? ATENÇÃO! ESSA AÇÃO NÃO TERÁ VOLTA!')" >APAGAR TODOS OS BOLETOS</button>
EDIT: Code edited as explained. I did tests with 1 minute, upei files, waited 1 minute.. upei a few more, I went to delete and deleted all.
Use the function
filemtime
to capture the date of the last file modification. This function will return the time in the default Unix timestamp; done this, just compare the time interval with the functiondate
orDateTime::diff
– Valdeir Psr
Would you have any example?
– JeanTDZ