Sisteme yüklenen bir dosyanın belli bir tarih sonrasında silinmesini nasıl sağlayabilirim , örneği 10 gün ya da 20 saat sonra ...
Php bilgim çok iyi değil sanıyorum sql kullanılması da gerekicek , bana bir yol gösterirseniz devamını halletmeye çalışacağım.Tavsiyeleriniz nelerdir.
Yüklenen Dosyanın X Süre sonra silinmesi
11
●1.279
- 08-01-2008, 22:15:49
- 08-01-2008, 23:29:34Dosyaları eklerken time(); ile eklenme zamanını kaydet. (Yoksa) Sonra aşağıdaki kodlardan birini belli aralıklarla çalıştır.
10 gün sonra silinir;
$zamanasimi = time()-864000; mysql_query("Delete From dosya_tablom where zaman < $zamanasimi");
20 saat sonra silinir;
$zamanasimi = time()-72000; mysql_query("Delete From dosya_tablom where zaman < $zamanasimi"); - 08-01-2008, 23:45:15Cronjob bu iş için daha uygun değil mi ? Bu şekilde dosya eklenmezse silinmez. Ama sık sık ekleniyorsa sorun yok tabii
- 08-01-2008, 23:52:35
<?php $zamanasimi = time()-864000; $sonuc = mysql_query("Select dosya_id, dosya_ismi From dosya_tablom where zaman < $zamanasimi"); $sayi = mysql_num_rows($sonuc); if($sayi !=0){ $satir = mysql_fetch_array($sonuc); $dosyam = $satir['dosya_ismi']; $dosya_id = $satir['dosya_id']; unlink('dosyalarim/'.$dosyam); mysql_query("Delete From dosya_tablom where dosya_id=$dosya_id"); } ?>Şöyle birşey olurmu acaba. - 09-01-2008, 02:20:53Hepinize teşekkürler, kullandığım sistemde Sql yok , sadece dosyalar yükleniyor rewrite ile html formatında kullanıcıya sunuluyor.Şimdi her dosya için bir txt oluştursak olmaz , Ersat ın dediği gibi veritabanı oluşturup ordan takip edicez sanırım.Sql den anLamıyorum yanLız.
- 09-01-2008, 13:09:09unlink olayını biliyorum hatta kullanıyorum fakat filemtime nasıl olacak..Bira baktım ayrıca filemtime(), bir dosyanın son değiştirildiği tarihi; filectime(), ise oluşturulduğu tarihi belirtir diyor hangisi doğru
şöyLe bir şey yaptım ama doğruluğu ne derece
<?php $dosyaadi = 'dosya.txt'; if (file_exists($dosyaadi)) { echo "$dosyaadi bla bla bla: " . date ("F d Y H:i:s.", filectime($dosyaadi)); } ?>filecmi filem mi - 09-01-2008, 14:26:17
<?php $dosyam = 'dosya.txt'; if(file_exists($dosyam)){ $zamanasimi = time()-864000; $zaman = filectime($dosyam); if($zaman < $zamanasimi){ unlink($dosyam); } } ?>Şu haliyle dosyanın ilk oluşturulduğu tarihi kontrol eder. Değiştirildiği yada oluşturulduğu tarih buna sen karar vermelisin. Normal düşünülürse oluşturulduğu tarih daha mantıklı.