summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xssn.at>2010-07-11 20:43:27 +0200
committerFlorian Pritz <bluewind@xssn.at>2010-07-11 20:43:27 +0200
commitfb01797274be73ac10124b2f728f7092307e6c37 (patch)
tree7b85bba0973a8b20ed9bbe8796083597ae98ce15
parent9323029d51f2012b8193a422ab0180436dd8ce8c (diff)
allow small files to be excluded from deletion
Signed-off-by: Florian Pritz <bluewind@xssn.at>
-rwxr-xr-xsystem/application/config/example/config.php4
-rw-r--r--system/application/controllers/file.php16
2 files changed, 16 insertions, 4 deletions
diff --git a/system/application/config/example/config.php b/system/application/config/example/config.php
index b9ce20468..af54fb383 100755
--- a/system/application/config/example/config.php
+++ b/system/application/config/example/config.php
@@ -341,6 +341,10 @@ $config['upload_path'] = FCPATH.'data/uploads';
$config['upload_max_size'] = 256*1024*1024;
$config['upload_max_text_size'] = 2*1024*1024;
$config['upload_max_age'] = 60*60*24*5; // 5 days
+
+// won't be deleted
+$config['small_upload_size'] = 1024*10; // 10KB
+
$config['passwordsalt'] = ''; // just enter any string you want here
/* End of file config.php */
diff --git a/system/application/controllers/file.php b/system/application/controllers/file.php
index d772a3478..a07debc40 100644
--- a/system/application/controllers/file.php
+++ b/system/application/controllers/file.php
@@ -131,16 +131,24 @@ class File extends Controller {
function cron()
{
$oldest_time = (time()-$this->config->item('upload_max_age'));
+ $small_upload_size = $this->config->item('small_upload_size');
$query = $this->db->query('SELECT hash, id FROM files WHERE date < ?',
array($oldest_time));
foreach($query->result_array() as $row) {
$file = $this->file_mod->file($row['hash']);
- if(file_exists($file) && filemtime($file) < $oldest_time) {
- unlink($file);
- $this->db->query('DELETE FROM files WHERE hash = ?', array($row['hash']));
- } else {
+ if (!file_exists($file)) {
$this->db->query('DELETE FROM files WHERE id = ? LIMIT 1', array($row['id']));
+ continue;
+ }
+
+ if (filesize($file) > $small_upload_size) {
+ if (filemtime($file) < $oldest_time) {
+ unlink($file);
+ $this->db->query('DELETE FROM files WHERE hash = ?', array($row['hash']));
+ } else {
+ $this->db->query('DELETE FROM files WHERE id = ? LIMIT 1', array($row['id']));
+ }
}
}
}