Being new to Drupal, I still struggle with its File-Management.

I have the following use-case:

  • Authenticated Users from group 'comitee' can upload files (jpg, png, pdf and docx) to the Server, rename then and structure them in subdirectories
  • Authenticated Users from group 'member' can browse those subdirectories and download the Documents.
  • Optional: Editors can reference to those files in CKEdit, be it for embeding images or to download documents.

AFAIK I could create my own Content Type with a File-Field and a Taxanomy simulating a directory-structure, and then browsing those files via a view. But in my eyes (still a rookie), this does not seem right to me. And I do not see another build-in way to do this.

From all the research I did, the only Module I could find covering this use-case and running on modern Drupal was IMCE. But IMCE seems not to be able to rename files, and looks a bit old to my eyes. Writing my own module also seems a bit an overkill for such a simple feature.

Is IMCE still the way to go, or is there some proven, stable module for such a use case I did not find? Or is there a standard way to do it in core?

2 Answers 2


Drupal has media for this. Core provides some media types and you can add additional ones. You can also add fields to media types for more customization.

However, Drupal is not a file manager in the sense of Explorer on Windows or Finder on Mac. Instead, the optimal way to manage files in Drupal is to think about what data relationships you need to manage and then structure your media types based on that.

Instead of worrying about where the files are on disk, you can use taxonomy for a hierarchy or tags or both. And you can use the Views module to easily create and filter different "lists" of files.

If you insist on trying to manage where the files are stored on disk, you can use modules like Filefield Paths, but this is going to be painful and difficult. I would strongly urge you to consider a structure where users don't need to think about where the data is stored but rather how the data items relate to each other.


Just an update about my final solution. According to Patrick Kenny, I did it with Standard Drupal Media, but this was only the starting point.

  • Created a new Role 'Member'

  • Created a new Taxonomy 'Download-Sections'

  • Created a new Content-Type 'Member-Only-File', with a field of Type 'Entity Reference' to Media-Type File and a field of Type 'Entity Reference' to the Download-Sections-Taxonomy.

  • Installed Contrib-Module entity_bundle_permissions, granted Access to 'Member-Only-File' to role 'Member', but not to anonymous or authenticated users. (had to explictly grant them access to all other bundles, though)

  • Created a View on Content Type=Member-Only-File, grouped by 'Download-Sections' (incl. exposed filter), accessible only to members.

Not exactly the design I had planned, but good enough for my use-case

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.