]> git.p6c8.net - jirafeau_project.git/commitdiff
delete files instead of moving them to trash
authorJerome Jutteau <mojo@couak.net>
Wed, 5 Dec 2012 18:23:54 +0000 (18:23 +0000)
committerJerome Jutteau <mojo@couak.net>
Wed, 5 Dec 2012 18:23:54 +0000 (18:23 +0000)
file.php
index.php
install.php
lib/functions.php
lib/settings.php

index 31c16da33b85d7d8a1c3c8381612e84cc3df1d1a..a8d42e488a12df690baaeaca4967ece19ebc9b13 100644 (file)
--- a/file.php
+++ b/file.php
@@ -47,40 +47,18 @@ if(isset($_GET['h']) && !empty($_GET['h'])) {
     $md5 = trim($content[5]);
     $onetime = trim($content[6]);
   
-  if(!file_exists(VAR_FILES . $md5)) {
-    if (file_exists(VAR_FILES . $md5 . '_count')) {
-      unlink(VAR_FILES . $md5 . '_count');
-    }
-    unlink($link_file);
-    require(JIRAFEAU_ROOT . 'lib/template/header.php');
-    echo '<div class="error"><p>' . _('File not available.') . '</p></div>';
-    require(JIRAFEAU_ROOT . 'lib/template/footer.php');
-    exit;
-  }
+    if(!file_exists(VAR_FILES . $md5)) {
+      jirafeau_delete($link_name);
 
-  $counter = 1;
-  if (file_exists(VAR_FILES . $md5 . '_count')) {
-    $content = file(VAR_FILES . $md5 . '_count');
-    $counter = trim($content[0], NL);
-  }
+      require(JIRAFEAU_ROOT . 'lib/template/header.php');
+      echo '<div class="error"><p>' . _('File not available.') . '</p></div>';
+      require(JIRAFEAU_ROOT . 'lib/template/footer.php');
+      exit;
+    }
 
   if($time != JIRAFEAU_INFINITY) {
     if(time() > $time) {
-      unlink($link_file);
-
-      $counter--;
-      if ($counter >= 1) {
-        $handle = fopen(VAR_FILES . $md5 . '_count', 'w');
-        fwrite($handle, $counter);
-        fclose($handle);
-      }
-      elseif ($counter == 0) {
-        if (file_exists(VAR_FILES . $md5 . '_count')) {
-          unlink(VAR_FILES . $md5 . '_count');
-        }
-        $new_name = jirafeau_detect_collision($md5 . '_' . $file_name, VAR_TRASH);
-        rename(VAR_FILES . $md5, VAR_TRASH . $new_name);
-      }
+      jirafeau_delete($link_name);
 
       require(JIRAFEAU_ROOT . 'lib/template/header.php');
       echo '<div class="error"><p>' . _('The time limit of this file has expired. It has been deleted.') . '</p></div>';
@@ -132,21 +110,7 @@ if(isset($_GET['h']) && !empty($_GET['h'])) {
     readfile(VAR_FILES . $md5);
 
     if($onetime == 'O') {
-      unlink($link_file);
-
-      $counter--;
-      if ($counter >= 1) {
-        $handle = fopen(VAR_FILES . $md5 . '_count', 'w');
-        fwrite($handle, $counter);
-        fclose($handle);
-      }
-      elseif ($counter == 0) {
-        if (file_exists(VAR_FILES . $md5 . '_count')) {
-          unlink(VAR_FILES . $md5 . '_count');
-        }
-        $new_name = jirafeau_detect_collision($md5 . '_' . $file_name, VAR_TRASH);
-        rename(VAR_FILES . $md5, VAR_TRASH . $new_name);
-      }
+      jirafeau_delete($link_name);
     }
     exit;
   } else {
index 7ee8ea29ec4b00e5760eaf0fd5a759526aa2867f..9028143eda45e259001dd7e963e313e3be1cb24e 100644 (file)
--- a/index.php
+++ b/index.php
@@ -26,7 +26,7 @@ require(JIRAFEAU_ROOT . 'lib/settings.php');
 require(JIRAFEAU_ROOT . 'lib/functions.php');
 
 /* check if the destination dirs are writable */
-$writable = is_writable(VAR_FILES) && is_writable(VAR_LINKS) && is_writable(VAR_TRASH);
+$writable = is_writable(VAR_FILES) && is_writable(VAR_LINKS);
 
 $res = array();
 if($writable && isset($_POST['jirafeau'])) {
@@ -69,10 +69,6 @@ if(!is_writable(VAR_LINKS)) {
   add_error (_('The link directory is not writable!'), VAR_LINKS);
 }
 
-if(!is_writable(VAR_TRASH)) {
-  add_error (_('The trash directory is not writable!'), VAR_TRASH);
-}
-
 /* Check if the install.php script is still in the directory. */
 if (file_exists(JIRAFEAU_ROOT . 'install.php')) {
   add_error (_('Installer script still present'),
index dfe094cb67086cd395c1b6548562e7d65556ff3d..d3136847f2da950cbee54d5fe082416f905dd49e 100644 (file)
@@ -89,7 +89,7 @@ function jirafeau_check_var_dir($path) {
     );
   }
   
-  foreach(array('files', 'links', 'trash') as $subdir) {
+  foreach(array('files', 'links') as $subdir) {
     $subpath = $path . $subdir;
 
     if(!jirafeau_mkdir($subpath)) {
index 48bdefdb993d9f13e38f8348c4ac08d8c775d45e..7a79840c2b2690c7184450b31202ddbd8872bd5c 100644 (file)
@@ -104,6 +104,37 @@ function jirafeau_upload_errstr($code) {
   return _('Unknown error.');
 }
 
+/** Remove link and it's file
+ * @param $link the link's name (hash)
+ */
+
+function jirafeau_delete($link) {
+  if(!file_exists(VAR_LINKS . $link))
+    return;
+
+  $content = file(VAR_LINKS . $link);
+  $md5 = trim($content[5]);
+  unlink(VAR_LINKS . $link);
+
+  $counter = 1;
+  if (file_exists(VAR_FILES . $md5 . '_count')) {
+    $content = file(VAR_FILES . $md5 . '_count');
+    $counter = trim($content[0]);
+  }
+  $counter--;
+
+  if ($counter >= 1) {
+    $handle = fopen(VAR_FILES . $md5 . '_count', 'w');
+    fwrite($handle, $counter);
+    fclose($handle);
+  }
+
+  if ($counter == 0 && file_exists(VAR_FILES. $md5)) {
+    unlink (VAR_FILES . $md5);
+    unlink (VAR_FILES . $md5 . '_count');
+  }
+}
+
 /**
  * handles an uploaded file
  * @param $file the file struct given by $_FILE[]
@@ -166,16 +197,16 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $cfg, $ip) {
   fclose($handle);
   $md5_link = md5_file($link_tmp_name);
   if(!rename($link_tmp_name, VAR_LINKS . $md5_link)) {
-    if ($counter > 1) {
-      $counter--;
+    unlink($link_tmp_name);
+    $counter--;
+    if ($counter >= 1) {
       $handle = fopen(VAR_FILES . $md5 . '_count', 'w');
       fwrite($handle, $counter);
       fclose($handle);
     }
     else {
-      unlink($link_tmp_name);
-      unlink(VAR_FILE . $md5 . '_count');
-      unlink(VAR_FILE . $md5);
+      unlink(VAR_FILES . $md5 . '_count');
+      unlink(VAR_FILES . $md5);
     }
     return(array(
       'error' => array(
index a54a3a7528e9a6bd118ee5155e6bdb360f36d19e..353a8d67444cd4c086e3bb2edffdb758b452bd27 100644 (file)
@@ -26,7 +26,6 @@ define('JIRAFEAU_VERSION', '0.4');
 
 define('VAR_FILES', $cfg['var_root'] . 'files/');
 define('VAR_LINKS', $cfg['var_root'] . 'links/');
-define('VAR_TRASH', $cfg['var_root'] . 'trash/');
 
 // i18n
 

patrick-canterino.de