File Uploading and Managing

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Modules for uploading and managing files, and associating them with content.

These modules actually have relatively little overlap, so you should consider this a guide in choosing the right module(s) for your needs, rather than a complaint about duplication. Just sayin'.

Module 4.7.x? 5.x? 6.x? 7.x? 8.x? Notes Module Updated Info as of
Asset - - - Yes - The Asset module proposes a new approach to the media management in Drupal, resolving a long-standing problem of reusable media files 2013.02.20 2014.04.02
DataBase File manager - Yes - - - hierarchical, drag-and-drop file admin interface, per-file permissions, file search, stores files in database. see also DBFM Search 2009.01.23 2009.03.19
FileDepot - - Yes Yes - The filedepot module is full featured Document Management module that has a google docs like feel. It fulfills the need for an integrated file management module supporting role and user based security. 2013.10.17 2013.12.11
FileField - Yes Yes (D7 core) (D8 core) cck file upload field, per-field or per-user directories, per-field/per-node size limits, revision/translation control, views support, ajax uploads 2009.04.25 2009.04.25
File - - - - - Abandoned - 2011.10.4
File Framework - - Yes (alpha4) - - distributed content addressable storage, metadata extraction, file conversion (including plaintext for search indexing), virus scanning, views support, webdav upload support 2009.03.18 2009.03.19
Filemanager Yes Yes - - - API for attachment.module. simultaneous public+private files, subdirectories, duplicate filenames (moved to different directories rather than renaming file), per-module file limits 2007.09.09 2009.03.19
File maintenance - - Yes - - Allows to perform maintenance on the files table, such as movilg files to (new) subdirs, all while making sure direct references to those files in node teaser & body HTML content are preserved. 2011.06.19 2011.06.19
Media - - Yes(dev) Yes - Is an extensible framework for managing files and multimedia assets, hosted local or on 3rd party 2013.03.02 2013.12.11
Media Field - Yes - - - audiofield and videofield CCK modules 2008.06.26 2009.03.20
Take Control - - Yes Yes - ExtJs based file Browser (Demo) 2012.05.06 2014.01.09
Upload Element - - Yes - - provides two new Form API types for uploading files. 2009.01.31 2009.03.19
WebFM - - Yes - - hierarchical, drag-and-drop file admin interface, per-file permissions, file search, views support 2011.02.28 2011.10.4
Storage API - Yes (dev) Yes - alternate storage api, demo'd at dcdc file api session 2010.03.14 2011.10.4
ElFinder - - Yes Yes - AJAX file manager - unmanaged files - allows for token use for file location: files, username, userID. No private download method. No role-based access control as of this post. Works native with CKEditor. 2012.01.22 2012.12.26

Automatic Filesystem Structuring

Module 4.7.x? 5.x? 6.x? 7.x? 8.x? Notes Module Updated Info as of
Upload Path - Yes Yes - - Moves files to specified location after upload, for only core upload.module. Lots of untouched requests. Uses token.module. 2008.11.08 2009.05.05
File (Field) Paths - - Yes Yes Yes(beta1) Adds support for entity tokens in file path and name in file based fields. Some batch restructuring. 2015.12.30 2015.12.30
Uploaded Files Mover - - Yes(dev) - - Moves files to specified location after upload, for both core upload.module and filefield.module. Also does empty-directory cleanup, batch restructuring. Doesn't support token.module yet. 2009.03.27 2009.05.05
Media Mover - - Yes(beta7) Yes(dev) - File processing framework, which happens to support moving (looks kinda like a more generic take on imagecache.module?). Big. 2013.10.03 2014.04.02


oh, this is _awesome_

greggles's picture

oh, this is awesome! Great work smokris, aaron, and mradcliffe!

Now, to get a link to this page from the project homepages for all of these projects so that people have a good sense of which one to choose.

Growing Venture Solutions | Drupal Dashboard | Learn more about Drupal - buy a Drupal Book

Missing: Upload

sun's picture


  • Upload (core)
  • IMCE
  • Image
  • Image Assist
  • Image Browser
  • Image Upload

Daniel F. Kudwien
unleashed mind

Daniel F. Kudwien
unleashed mind

this made me think

KennethSena's picture

guess you are right. sometimes, we tend to complain more than doing something from what we have in managing and uploading our files.


Deciphered's picture

I'd be more than happy to add a link to the FileField Paths project. (An anchor point would be nice :) )

Just one small request, can we get some sort of support column on the 'Automatic Filesystem Structuring' modules?
Currently FileField Paths supports the following modules:
- Drupal core Upload module.
- FileField module.
- ImageField module.
- ImageField Crop module.
- Image module (dev).
- Comment Upload module (dev).



Deciphered's picture

It might be prudent to add a third section, as I know from experience that Image FUpload relies on either Image module or ImageField module to handle the uploading, and I'm sure other modules also operate in this manner.

Yes, a depends on field

kellyharding's picture

Yes, a depends on field would be very useful for 'at a glance' reasons.

Options for uploading large files (like images and videos)

dugh's picture

Tools for uploading large files.

3 popular general libraries for uploading files are swfupload (flash-based), jupload (java applet), and postlet (java applet).

There may be some ajax solutions out there, too.

None of the above solutions work with the video module.


Media Mover + FTP

aaron's picture

Media Mover also manages large files well, and works with FTP as well (which is particularly useful there).

Aaron Winborn
Drupal Multimedia (book, available now!) (blog)
Advomatic (work)

Aaron Winborn
Drupal Multimedia (my book, available now!)

Privacy & related

alisonjo2786's picture

I'm also interested in the various modules for making/keeping files (that are downloadable for end users) private and related issues -- and how these modules do or do not play nice with the above lists of modules.

I'm going to be trying Private Upload for a project I'm starting and will let y'all know what pros/cons I discover, but an example of the details I'm talking about is mentioned explicitly on the project page--


* Conflicts with Upload Path:

* Conflicts with Upload Image:

* Does not add private checkbox to Comment Upload:

Note that core d7 allows for

aaron's picture

Note that core d7 allows for mixed public & private file systems by default.

Aaron Winborn
Drupal Multimedia (my book, available now!)

Drag'n'Drop Uploads

Deciphered's picture

Hi guys,

I just added a new module to D.o., Drag'n'Drop Uploads, which adds native javascript Drag'n'Drop (Local filesystem > Drupal) Upload support for the Drupal core Upload, FileField/File and ImageField/Image modules in the Apple Safari 4+, Google Chrome 2+ and Mozilla Firefox 3.6+ browsers, with Google Gears support on the way.

While there's not really anywhere on the table for this module, it seems like a relevant place to put it.


Looks interesting, but it's a

Garrett Albright's picture

Looks interesting, but it's a bummer it will require adding another JavaScript library. However, it looks like someone has made some progress doing it in pure jQuery… can you read Russian? I can't, but the video seems to say a lot!


Deciphered's picture

Hi Garrett,

Maybe my text is is misleading, if so I would be happy to change it, but in no way does this module require another JavaScript library. There is native (pure JavaScript/jQuery) support for Apple Safari 4+, Google Chrome 2+ and Mozilla FireFox 3.6+. There is however the ability to use Google Gears to add non-native support to other Browsers.

And no, I can't read Russian, but I can read code, and he is using both Google Gears and the native Firefox 3.6 methods which I am using in my module.


P.S. Sorry if this sounded rude in any way, that wasn't my intent.

…Oh. Okay. Reading your blog

Garrett Albright's picture

…Oh. Okay. Reading your blog post about the module, I was thinking that Swell library was necessary to use it, but rereading it, I see you're saying you were just inspired by it to create your own implementation. Sorry about that - I skimmed and jumped to conclusions. =[

Just attaching multiple files

tmetzger's picture

Great page! What I'm really looking for however is a simple way to attach multiple files at once to a node. Not necessarily images, but simple file attachments. I've spent quite a bit of time looking for this. Is there anything appropriate to that challenge that you're aware of?

Thanks in advance for any help!


Tom, have you tried the core

Garrett Albright's picture

Tom, have you tried the core (included with Drupal by default, but not enabled) Upload module? If you have and it's not meeting your needs, give us more information on why not and we can offer you better suggestions.

No multiple select

tmetzger's picture

Hi Garrett,

The Upload module is great! In fact that's what I'm using now. But my clients complain that it's a bit of a pain to upload the files one at a time. Basically I've got a "Song" node in Groupanizer and they attach their learning tracks and music to each song. So they want to get 5-10 MP3 files attached to each node.

If it worked like this, they would all be applauding:

Any tips for me?

Unfortunately, when working

Garrett Albright's picture

Unfortunately, when working with large-ish files over the web, there are no easy answers. There may be Flash-powered upload modules available for Drupal, but I don't know of any off-hand (personally I'm not a Flash fan).

I'm not a huge flash fan

tmetzger's picture

I'm not a huge flash fan either, but if it's the only way to do something, count me in! Functionality wins.

Maybe I just need to integrate this puppy:


There is already a module for

BMorse's picture

There is already a module for this Though there seems to be a issues in the issue queue for the 6x version.

Only one file at a time

tmetzger's picture

SWFUpload is very close to what I need, except it doesn't do multiple file uploads. Which is unfortunate since the actual flash widget does!

Aaron Winborn
Drupal Multimedia (my book, available now!)

I've avoided CCK up until

tmetzger's picture

I've avoided CCK up until now. I'm running dozens of sites off the same codebase, and I haven't found a way to make the CCK stuff get set up automatically. If I could do that, perhaps I would go with FileField.

Does the 2.x version do the multiple file uploads?


blainelang's picture

The filedepot module was recently released and is an integrated file or document management solution that provides secure file management with flexible permission control and a google docs like feel. It's capable of easily storing 1000's of documents of any type with any number of folders and subfolders. It only requires the CCK filefield module and that was added to support a native drupal node view/operation. There is a windows desktop client available that allows users to drag/drop multiple files at one time from their desktop for background uploading. This allows batches of 100's of files or very large files to be uploaded and additionally the desktop client can be used to edit hosted files in real-time and transparently saving them/updating them when you save the document on your desktop.

Greg, can you please add this module to your table.


it's a wiki

greggles's picture

"You are viewing a wiki page. You are welcome to edit it. Be bold!"

Be, bold!

Doh! -- thanks Greg. Done now

blainelang's picture

Doh! -- thanks Greg. Done now :)

'got hit by a module crossing the highway; it hurts!'

ClearXS's picture

My modules highway:

Hi, nice modules and making a system with far over 200 modules. Now a new module filedepot. OK, probably something the other existing modules can't? So ofcourse installing it to be able deciding if it remains in the future installation together with similar modules, or not?

But wait... Isn't it possible to integrate some new features with existing modules instead of a new module? Or to join two modules together? Or to tear all these modules down to their basic sub-parts and glue together again into a basic API and very big ones?

Then there was "Media", but this project has been dis-abanded for D6, don't know why. I could find and install an old D6 version though. This is how its shows up in D6:

Very nice, but nothing can be done with the modules I shouldn´t tick on..?

Ohh, have a look at this article submit page (containing file systems a.s.o.):

(CKEditor and others working in text fields, but at this moment not for anonymous)

I'm not getting dizzy, because I never tried to use it. But I fear for the health of future article posters on this site.

Couldn't all these options that sometimes are necessary, be grouped under something like a menu structure? So that if I want to upload a file, I only then get to the next menu item what kind of a file? If its a pic, then how many and want to use carousel or something in a later stage? Etc.? Just to minimalize that new article submit page to a very few basic options, which options only change in further options, if asked for?

Upload files to a different domain

pubudusj's picture

Hi Guys,

I am a dummy in drupal... :)

Is that possible to upload files to a different domain instead of my current drupal server? 'Cos I am dealing with a lot of video data so that I prefer video conversions happened in another server that makes my main drupal site's load reducing.
Any suggestions?

Thanks in advance.

Flashvideo, CDNs

rfay's picture

Hi - Your problem is a very common one - lots of people want to get their static content off the main site. The general problem is having a CDN, or content distribution network, for your files. The CDN module helps with this; there are other CDN solutions as well. But for your particular situation you might be interested in the Flashvideo project, which allows you to use Amazon S3 for storage and delivery of videos.

deleting duplicate image

poli's picture

Very good job and very good level on your page.
From my side I'm a beginner and I count on a drupal module or a method of configuring experienced for deleting duplicate image files created in the file system.
I find myself sometimes with the same image placed at least three different places. Not cool for the server if large amounts of contributions.
Does someone have already encountered a post in connection with this problem?
Thank you in advance for your help

don't forget kaltura

a_webb's picture

If you are willing to pay for their hosting, or know enough about server-side unix to set up a server, then Kaltura is a truly awesome file>>specifically media uploader.
As far as a file manager we are looking for one to deploy to handle our media permissions and file structure...if anyone has had success integrating a file manager alongside kaltura please post...otherwise I will follow up with our progress

File Attachment Groups

markcarver's picture

I am curious if there is already a module that exists for grouping file attachments. I would like users to be able to organize files that are uploaded into categories (ie: separate table lists that use the name of a desired category instead of one long list of "Attachment"s). Some of my users do not know HTML or even how to use a simple WYSIWYG editor to just use the URL and it would be nice if users could just order the list that's already there and place them in categories such as "Registration Forms" and "General Forms".

Hi Mark, Did you ever find a

johnennew's picture

Hi Mark,

Did you ever find a module which does this?



Wow to FileDepot

mcfilms's picture

I know it is listed up above. But I just found out about it today. Wow -- it looks like the FileDepot module has just about every feature one could want. Where was this two years ago? :)

Now who do I talk to about making a Macintosh desktop client?

it looks like the FileDepot

sun's picture

it looks like the FileDepot module has just about every feature one could want.

Right. And that makes it "Un-Drupalish", since this naturally means that the module serves a single purpose and/or use-case.

Drupal is modular and extensible. Each module has its dedicated purpose. Other modules extend the functionality of third-party modules. That's The Drupal Way(tm).

Daniel F. Kudwien
unleashed mind

It may not be "the" drupal

chriscalip's picture

It may not be "the" drupal way but heck I agree filedepot is great!

aceraceracer's picture

I'm a teacher with a drupal site I am building. I want a module that I will allow students to upload homework assignments to their individual teachers for marking. What would really be good is if all students can see who has submitted the assignment, but once uploaded they can't reaccess it or any other student either so plagerism is not an issue.

Is there something above that meets these needs?

Ps I don't have much experience in programming so a turn-key solution with clear setup docos would be great.

Just create a custom content-type

mori's picture

Just create a custom content-type with the possibility to attach files.
You can then restrict the access to use it to a user-group (role), e.g. "students" and restrict access to edit "own" nodes of this type.
Author is automatically set to the user which created the node.

No programming necessary for this. Do you use Drupal 6, 7 or a version below ?

custom content type

aceraceracer's picture

hmmm. not quite sure what you mean. Where is custom content type? I was really thinking about a post box type thing that students could submit work to individual teachers.

any ideas?

The webform module should

james.elliott's picture

The webform module should meet your needs. You could create a form for each assignment that consists of a file upload and then restrict users to 1 submission only.


aceraceracer's picture

thanks for the quick reply

could I make it list uploaded files for all to see? Also if each teacher has different assignments, can I designate who it goes to?

Also I wanted to avoid making a form for every assignment. I was thinking more like a post box for each teacher.

could I do this?

You should be able to set the

james.elliott's picture

You should be able to set the permissions so that anyone can see the results.

You could create a form per-teacher and have a select list of assignments. Or if you want a single purpose form you could do a select list for each teacher and assignment. Then just set up the email notification to go to the selected teacher with the assignment as the subject and the file attached.


aceraceracer's picture

hi thanks for the reply - this sounds like a good solution. Which one of the modules should I use? could you briefly outline the steps to do the above...Do I need to know programming or Is there a built in module for this in drupal?


You'll want Webform, CCK,

mradcliffe's picture

You'll want Webform, CCK, Filefield, and probably Views. Also enable core Taxonomy for some categorization. No programming needed, but you should learn about how to setup and build content types in Drupal.

You can install the Content Permission module (included with CCK) if you want to make the file field with restricted access. You may also need node access or content access if you don't find enough flexibility with permissions out of the box.


aceraceracer's picture

thanks for the reply. I have installed webforms, now I will play with it and see what kind of functionality I can get out of it. Can anyone tell me what the field set is to upload? In webforms when I choose to add FILE field set, of course I get an error "Fatal error: Call to undefined function file_default_scheme() in /home/trylearn/public_html/sites/default/modules/webform/components/ on line 134

anyone suggest a solution?

cheers all. really welcoming and helpful forum

We used webform for CV

decibel.places's picture

We used webform for CV uploads at

You can also use the recently sanitized webform report module to let users see the results but not edit them without permission.


aceraceracer's picture

hi thanks for the reply. was the data type for the browse the "file" type you chose? As I said in my previous post when I choose file it causes an error code.


@aceracer yes we use the file

decibel.places's picture

@aceracer yes we use the file component in webform with extensions doc txt pdf without errors

what version of Drupal core and Webform are you using?

your module version number must match your core version eg D6.x + module 6.x - and - D7.x + module 7.x

in D7 file_directory_path is replaced with file_default_scheme so using the 7.x version of Webform with 6.x of core could cause the error

File uploading system

aceraceracer's picture

Can anyone suggest a module or a way of doing the following. I saw a guy do this with a product called Content Mangement Made Simple and it blew my mind and shut my mouth about Drupal being better.

This is what he did.

Teachers all needed to upload specific documents for a complience audit. For example lets say a teacher needed to upload 3 documents

  1. Budget document Policy

  2. First Aid Policy

  3. Sexual Harassment Policy

If it had not been uploaded it had a big red cross next to it. If it was uploaded a green tick appeared.

The uploaders name appeared next to the uploaded file

Any uploaded file was renamed according to a set naming convention

Managers could easily see who had uploaded policies and who hadn't

Combining File Upload with Taxonomy

Polk's picture

Hello, all,

A contractor designed a site for us and I am trying to figure out how to tweak it. Please forgive my learning curve!

Currently, authors are assigned access rights based on Taxonomy. So, someone that works in the Assessor's Office can only upload or link to files in the Assessor's Directory on the file system. So far, so good.

The contractor created some specific content types to allow authors to upload files. When they do that, /admin/settings/file-system dumps uploaded documents to sites/default/files instead of to their respective directories via taxonomy.

Problem 1: over the course of time, that sites/default/files directory will fill with hundreds of thousands of uncategorized files.

Problem 2: because the author only has rights to the Assessor's directory, they cannot find/see the file that they previously uploaded to the sites/default/files directory.

Does this make any sense?

Help, please! Running 6.19.

Thank you!



3rdLOF's picture

ElFinder is coming up and available for D7. Absolutely gorgeous and for my money the one that works best of all I have tried.

It does have some limitation as of the date of this post:

A) So far, it can only be configured as an all-site module and does not allow for any per-file access control based on roles. It does allow for the configuration of specific locations using three tokens: File, username and userID

B) So far it does not appear to work with the private download method. I have posted an issue on the project's queue, but no response so far.

As of last week the maintainer committed (and fixed) a patch I submitted so it works native with ckeditor without the need for WYSIWYG module, which personally I like better as it simplifies the whole thing.

EDIT: added to table above.

does any of these have notifications?

gigel2007's picture

i would like to be able to configure a drupal file manager in such a way that when someone uploads a file, other users receive an email notification or when they login to be able to see new uploads.

does any of these file managers have such an option?
mainly i need to setup a small home office with one uploader and the rest of the users as readers. so when a reader logins, even after half a year for example, to be able to see what new documents are since his last login or last document view.

sort of getting an alternative to sending a large document to dozens of email recipients (as it happens now)

Rules module

loopduplicate's picture

It seems to me that you can use Rules? When new content is created, an action can be made to send email to users. Or perhaps also integrate with privatemsg module and have a private message sent out to everyone when new content is added. These are just thoughts, hope they help a little.

Thanks. Good work.

hooface's picture

Thanks. Good work.

Organic Groups Happy?

goose2000's picture

Which of these work with Organic Groups OG; a group file repository?

I think I understand the FileDepot works with OG?

Media Browser Plus

suldan's picture

The 'Media Browser Plus' is also worth mentioning >

New module: File Resumable Upload

anrikun's picture

File Resumable Upload aka file_resup adds large files multiple and resumable upload to the File and Image field widgets.

Only rename uploaded files

remaye's picture

Among all this awesome modules which would be the lightest one to just allow renaming imagefield files after upload and/or on node edit form ?
Thanks for any advice...

Linking to unmanaged files in files subdirectory

ptocco's picture

I would like to know if there is an easy way to allow Drupal to access unmanaged files in a public files subdirectory. That is, I need to link to files in a subdirectory of the public files. When I try to do this, I get:

"Requested page is not found"

There must be a way to tell Drupal to allow file downloads to files in a sites/default/files subdirectory.

Also, the quirky site I'm working with does not have a Files section of Content. Wondering if anyone knows how to restore Files as a tab.

I have no problem placing files in the sites/default/files and linking to them on pages. I need to avoid folder clutter and use a subdirectory, that's all. I do not want to "log in" each of the many files I need to add -- just want to dump them and link to them.

Linking to unmanaged files in files subdirectory

ptocco's picture

I just found a workaround. Turns out I can create all the subfolders in my themes directory, so that's where I'm putting these files. I was hoping to put them in sites/all/default/files, to keep it independent of the theme, but oh well. As long as it works.

Still wondering why I have no Files tab in Content.

Not sure exactly what you are

zirafa's picture

Not sure exactly what you are trying to do but typically .htaccess configuration manages whether a request should be denied by the server, granted by the server, or passed through Drupal and interpreted as an internal route.