From 741bb2a6068079ebd322efeac596e929dcada0d1 Mon Sep 17 00:00:00 2001 From: Christian Haschek Date: Sat, 7 Nov 2015 00:03:57 +0100 Subject: [PATCH] Added the ability to create a master code that can delete any image from the server (only for server hosters) --- README.md | 4 ++++ css/imgs/deleted.jpg | Bin 0 -> 44915 bytes inc/example.config.inc.php | 8 ++++++++ models/pictsharemodel.php | 31 +++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 css/imgs/deleted.jpg diff --git a/README.md b/README.md index e8f4905..ac592a7 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ PictShare is an multi lingual, open source image hosting service with a simple r UPDATES ======== +- Nov. 06: Master delete code. One code to delete them all - Nov. 01: [Restricted uploads and option-use](#restriction-settings) - Oct. 30: [Rotations and filters](#smart-query-system) @@ -24,6 +25,7 @@ If you're a blogger like myself, you can use it as storage for your images so th - Smart [resize, filter and rotation](#smart-query-system) features - Duplicates don't take up space. If the exact same images is uploaded twice, the second upload will link to the first - You can control who can upload images or use filters/resizes by defining an [upload-code](#restriction-settings) +- You can set a code in your ```/inc/config.inc.php``` (MASTER_DELETE_CODE) that, if appended to any URL of an Image, will delete the image and all cached versions of it from the server ## Smart query system PictShare images can be changed after upload just by modifying the URL. It works like this: @@ -162,6 +164,7 @@ server { ## Upgrading - Just re-download the [PictShare zip](https://github.com/chrisiaut/pictshare/archive/master.zip) file and extract and overwrite existing pictshare files. Uploads and config won't be affected. +- Check if your ```/inc/config.inc.php``` file has all settings required by the ```/inc/example.config.inc.php``` since new options might get added in new versions Or use these commands: @@ -178,6 +181,7 @@ rm -rf temp - Plugin to upload images with ShareX: https://github.com/ShareX/CustomUploaders/blob/master/pictshare.net.json ## Coming soon +- Delete codes for every uploaded image so users can delete images if no longer needed - Albums - Traffic analysis tool for server admins diff --git a/css/imgs/deleted.jpg b/css/imgs/deleted.jpg new file mode 100644 index 0000000000000000000000000000000000000000..904f8150ad5529985d3457025fc27aa989d6d945 GIT binary patch literal 44915 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 M`wyV@`JcuA0Z0~^-2eap literal 0 HcmV?d00001 diff --git a/inc/example.config.inc.php b/inc/example.config.inc.php index dd909ce..a114d4a 100644 --- a/inc/example.config.inc.php +++ b/inc/example.config.inc.php @@ -1,5 +1,13 @@ 10 && $el=='delete_'.MASTER_DELETE_CODE) + $data['delete'] = true; + } + if($data['delete'] && $data['hash']) + { + $this->deleteImage($data['hash']); + return false; + } + + return $data; } + function deleteImage($hash) + { + $base_path = ROOT.DS.'upload'.DS.$hash.DS; + if(!is_dir($base_path)) return false; + if ($handle = opendir($base_path)) + { + while (false !== ($entry = readdir($handle))) + { + if ($entry != "." && $entry != "..") + { + unlink($base_path.$entry); + } + } + closedir($handle); + } + + rmdir($base_path); + + return true; + } + function isLegacyThumbnail($val) { if(strpos($val,'_'))