]> git.p6c8.net - jirafeau_mojo42.git/blobdiff - lib/functions.php
delete files instead of moving them to trash
[jirafeau_mojo42.git] / lib / functions.php
index cb2226a2a15285968dfb2a4e8a1d9e73d12aba10..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[]
@@ -111,11 +142,12 @@ function jirafeau_upload_errstr($code) {
  * @param $key if not empty, protect the file with this key
  * @param $time the time of validity of the file
  * @param $cfg the current configuration
+ * @param $ip uploader's ip
  * @returns an array containing some information
  *   'error' => information on possible errors
  *   'link' => the link name of the uploaded file
  */
-function jirafeau_upload($file, $one_time_download, $key, $time, $cfg) {
+function jirafeau_upload($file, $one_time_download, $key, $time, $cfg, $ip) {
   if(empty($file['tmp_name']) || !is_uploaded_file($file['tmp_name'])) {
     return(array('error' => array('has_error' => true, 'why' => jirafeau_upload_errstr($file['error'])), 'link' => ''));
   }
@@ -161,20 +193,20 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $cfg) {
   /* create link file */
   $link_tmp_name = VAR_LINKS . $md5 . rand(0, 10000) . '.tmp';
   $handle = fopen($link_tmp_name, 'w');
-  fwrite($handle, $name . NL . $mime_type . NL . $size . NL . $key . NL . $time . NL . $md5 . NL . ($one_time_download ? 'O' : 'R') . NL . date('U') . NL);
+  fwrite($handle, $name . NL . $mime_type . NL . $size . NL . $key . NL . $time . NL . $md5 . NL . ($one_time_download ? 'O' : 'R') . NL . date('U') . NL . $ip . NL);
   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(

patrick-canterino.de