Showing
2 changed files
with
23 additions
and
6 deletions
| ... | @@ -177,14 +177,30 @@ class ImageController extends Controller | ... | @@ -177,14 +177,30 @@ class ImageController extends Controller |
| 177 | 177 | ||
| 178 | // Delete files | 178 | // Delete files |
| 179 | $folder = public_path() . dirname($image->url); | 179 | $folder = public_path() . dirname($image->url); |
| 180 | - $pattern = '/' . preg_quote(basename($image->url)). '/'; | 180 | + $fileName = basename($image->url); |
| 181 | - $dir = new RecursiveDirectoryIterator($folder); | 181 | + |
| 182 | - $ite = new RecursiveIteratorIterator($dir); | 182 | + // Delete thumbnails |
| 183 | - $files = new RegexIterator($ite, $pattern, RegexIterator::ALL_MATCHES); | 183 | + foreach(glob($folder . '/*') as $file) { |
| 184 | - foreach($files as $path => $file) { | 184 | + if(is_dir($file)) { |
| 185 | - unlink($path); | 185 | + $thumbName = $file . '/' . $fileName; |
| 186 | + if(file_exists($file)) { | ||
| 187 | + unlink($thumbName); | ||
| 186 | } | 188 | } |
| 189 | + // Remove thumb folder if empty | ||
| 190 | + if(count(glob($file . '/*')) === 0) { | ||
| 191 | + rmdir($file); | ||
| 192 | + } | ||
| 193 | + } | ||
| 194 | + } | ||
| 195 | + | ||
| 196 | + // Delete file and database entry | ||
| 197 | + unlink($folder . '/' . $fileName); | ||
| 187 | $image->delete(); | 198 | $image->delete(); |
| 199 | + | ||
| 200 | + // Delete parent folder if empty | ||
| 201 | + if(count(glob($folder . '/*')) === 0) { | ||
| 202 | + rmdir($folder); | ||
| 203 | + } | ||
| 188 | return response()->json('Image Deleted'); | 204 | return response()->json('Image Deleted'); |
| 189 | } | 205 | } |
| 190 | 206 | ... | ... |
| ... | @@ -70,6 +70,7 @@ Route::group(['middleware' => 'auth'], function() { | ... | @@ -70,6 +70,7 @@ Route::group(['middleware' => 'auth'], function() { |
| 70 | Route::get('/images/all', 'ImageController@getAll'); | 70 | Route::get('/images/all', 'ImageController@getAll'); |
| 71 | Route::put('/images/update/{imageId}', 'ImageController@update'); | 71 | Route::put('/images/update/{imageId}', 'ImageController@update'); |
| 72 | Route::delete('/images/{imageId}', 'ImageController@destroy'); | 72 | Route::delete('/images/{imageId}', 'ImageController@destroy'); |
| 73 | + Route::get('/images/{imageId}/delete', 'ImageController@destroy'); | ||
| 73 | Route::get('/images/all/{page}', 'ImageController@getAll'); | 74 | Route::get('/images/all/{page}', 'ImageController@getAll'); |
| 74 | Route::get('/images/{any}', 'ImageController@getImage')->where('any', '.*'); | 75 | Route::get('/images/{any}', 'ImageController@getImage')->where('any', '.*'); |
| 75 | 76 | ... | ... |
-
Please register or sign in to post a comment