]> git.mxchange.org Git - simple-upload.git/blobdiff - index.php
Don't delete or mark/unmark files/directories that are being ignored.
[simple-upload.git] / index.php
index 7ecb92709b15ea00de131bdaffec0c14b818d78c..3c2998b0e56425480d6cb91cc0553fab4a1eba89 100644 (file)
--- a/index.php
+++ b/index.php
 
        // Handling file upload
        function uploadFile ($file_data) {
-               global $settings;
-               global $data;
-               global $_SESSION;
+               global $settings, $data;
 
                $file_data['uploaded_file_name'] = basename($file_data['name']);
                $file_data['target_file_name'] = $file_data['uploaded_file_name'];
                }
        }
 
+       // Delete file
+       function deleteFile ($file) {
+               global $data;
+
+               if (in_array(substr($file, 1), $_SESSION['upload_user_files']) || in_array($file, $_SESSION['upload_user_files'])) {
+                       $fqfn = $data['uploaddir'] . DIRECTORY_SEPARATOR . $file;
+                       if (!in_array($file, $data['ignores']) && file_exists($fqfn)) {
+                               unlink($fqfn);
+                               echo 'File has been removed';
+                               exit;
+                       }
+               }
+       }
+
+       // Mark/unmark file as hidden
+       function markUnmarkHidden ($file) {
+               global $data;
+
+               if (in_array(substr($file, 1), $_SESSION['upload_user_files']) || in_array($file, $_SESSION['upload_user_files'])) {
+                       $fqfn = $data['uploaddir'] . DIRECTORY_SEPARATOR . $file;
+                       if (!in_array($file, $data['ignores']) && file_exists($fqfn)) {
+                               if (substr($file, 0, 1) === '.') {
+                                       rename($fqfn, substr($fqfn, 1));
+                                       echo 'File has been made visible';
+                               } else {
+                                       rename($fqfn, $data['uploaddir'] . DIRECTORY_SEPARATOR . '.' . $file);
+                                       echo 'File has been hidden';
+                               }
+                               exit;
+                       }
+               }
+       }
 
        // Files are being POSEed. Uploading them one by one.
        if (isset($_FILES['file'])) {
 
        // Other file functions (delete, private).
        if (isset($_POST)) {
-               if ($settings['allow_deletion'])
-                       if (isset($_POST['action']) && $_POST['action'] === 'delete')
-                               if (in_array(substr($_POST['target'], 1), $_SESSION['upload_user_files']) || in_array($_POST['target'], $_SESSION['upload_user_files']))
-                                       if (file_exists($_POST['target'])) {
-                                               unlink($_POST['target']);
-                                               echo 'File has been removed';
-                                               exit;
-                                       }
+               if ($settings['allow_deletion'] && (isset($_POST['target'])) && isset($_POST['action']) && $_POST['action'] === 'delete')
+                       deleteFile($_POST['target']);
 
-               if ($settings['allow_private'])
-                       if (isset($_POST['action']) && $_POST['action'] === 'privatetoggle')
-                               if (in_array(substr($_POST['target'], 1), $_SESSION['upload_user_files']) || in_array($_POST['target'], $_SESSION['upload_user_files']))
-                                       if (file_exists($_POST['target'])) {
-                                               if ($_POST['target'][0] === '.') {
-                                                       rename($_POST['target'], substr($_POST['target'], 1));
-                                                       echo 'File has been made visible';
-                                               } else {
-                                                       rename($_POST['target'], '.' . $_POST['target']);
-                                                       echo 'File has been hidden';
-                                               }
-                                               exit;
-                                       }
+               if ($settings['allow_private'] && (isset($_POST['target'])) && isset($_POST['action']) && $_POST['action'] === 'privatetoggle')
+                       markUnmarkHidden($_POST['target']);
        }
 
        // List files in a given directory, excluding certain files
-       function listFiles ($dir, $exclude) {
+       function createArrayFromPath ($dir) {
+               global $data;
+
                $file_array = array();
                $dh = opendir($dir);
-                       while (false !== ($filename = readdir($dh))) {
+                       while ($filename = readdir($dh)) {
                                $fqfn = $dir . DIRECTORY_SEPARATOR . $filename;
-                               if (is_file($fqfn) && !in_array($filename, $exclude))
+                               if (is_file($fqfn) && !in_array($filename, $data['ignores']))
                                        $file_array[filemtime($fqfn)] = $filename;
                        }
 
        // Removes old files
        function removeOldFiles ($dir) {
                global $file_array, $settings;
+
                foreach ($file_array as $file) {
                        $fqfn = $dir . DIRECTORY_SEPARATOR . $file;
                        if ($settings['time_limit'] < time() - filemtime($fqfn))
                }
        }
 
-       $file_array = listFiles($data['uploaddir'], $data['ignores']);
+       // Only read files if the feature is enabled
+       if ($settings['listfiles']) {
+               $file_array = createArrayFromPath($data['uploaddir']);
 
-       // Removing old files
-       if ($settings['remove_old_files'])
-               removeOldFiles($data['uploaddir']);
+               // Removing old files
+               if ($settings['remove_old_files'])
+                       removeOldFiles($data['uploaddir']);
 
-       $file_array = listFiles($data['uploaddir'], $data['ignores']);
-       //die(print_r($file_array, TRUE));
+               $file_array = createArrayFromPath($data['uploaddir']);
+       }
 ?>
 <!DOCTYPE html>
 <html lang="<?=$settings['lang']?>" dir="<?=$settings['lang_dir']?>">