spatie / laravel-medialibrary

Associate files with Eloquent models
https://spatie.be/docs/laravel-medialibrary
MIT License
5.78k stars 1.08k forks source link

Correctly remove media folders after removing all media files #3688

Closed StyxUA closed 3 months ago

StyxUA commented 3 months ago

If the media model has conversions and/or responsive images, then DefaultFileRemover will not remove the media folder upon removing all files.

The reason of this issue lies in order of removing folders. It tries to remove media folder first, then conversions folder, and then responsive images folder (removing empty directories if there are no files left). Although, conversions/responsive images folders reside inside media folder, thus preventing it from being removed.

This PR fixes this issue by changing the order of removing these folders, moving removing media folder to the last, after all other folders have been removed.

Existing tests weren't catching this issue because they used models without conversions/responsive images. New tests have been added to solve this.

freekmurze commented 3 months ago

Thanks!