Download DOWNLOAD
Forums FORUMS
Blogs BLOGS
Forge FORGE
Help HELP
Marketplace MARKETPLACE
DotNetNuke Home
You are here >   Community > Blogs
Register  |  Login

DNN Blog

Jun 27

Posted by: Michael Washington
6/27/2009 

Would you like to offer a group of your users the ability to create their own file structure and upload massively large files? Look no further. Here is a DotNetNuke module by The Open Light Group, with source code that will do that.

If you have any problems installing it, please post to the forum at this link.

However, hold off on any feature requests because this is just a proof of concept for a Silverlight File Manager that will be in SilverlightDesktop.net.

Why we made this

The reason we broke this off into it's own app is we needed to work out a few challenges:

  • When you move files around in a web based file manager, the communication lag causes things to sometimes get "out of sync".
  • When you allow people to upload large files you simply cannot store all the files on a single server.

How to prevent Lag

The answer to the problem of:

  1. User drags 4 large files from one directory to another using the Silverlight File manager
  2. File manager uses web services to instruct the server to move the files
  3. The server starts to move the files
  4. The user changes their mind and moves the files somewhere else before the server has finished the first move

The answer? Don't move the files. Store the file structure (the folders) "virtually" in the database. So once a person uploads a file it doesn't move again unless it is deleted.

How to Store a Large amount of Files

The answer? Store them in a lot of places. We borrowed a feature we initially developed for ADefHelpDesk called "rolling repository".

It will allow you to set the upload folder, and if files are uploaded to one path and the path is changed for future files, the application will remember what location each file was uploaded to and will be able to retrieve all files. This will allow you to specify different directories at different times.

You can download the module here:

http://dnnsilverlight.adefwebserver.com/Silverlight20/PersonalFileUpload/tabid/77/Default.aspx

Tags:

7 comment(s) so far...

Re: A File Manager For Each User For Large Files

This looks cool, thanks for sharing. Have you considered integrating with Amazon S3? I am not sure how useful it would be, but they have very good rates for data storage and transfers

By Mike Cox on   6/29/2009

Re: A File Manager For Each User For Large Files

nice one

By dark_skull on   6/29/2009

Re: A File Manager For Each User For Large Files

When you say large files - I am having an issue where DNN times out when trying to upload very large files using documents module. Would this module solve that problem for me?

I also like the Amazon S3 integration idea.

Greg

By Greg Brown on   6/30/2009

Re: A File Manager For Each User For Large Files

@Greg Brown
Yes this module solves the problem of DNN timing out because it sends the file in "chunks".

Each chunk is small enough that it does not time out.

When each new "chunk" is sent, the "time out clock starts over".

By Michael Washington on   6/30/2009

Re: A File Manager For Each User For Large Files

Cool! This solves a fairly large problem for me. MW to the rescue as usual!!

Thanks for the contribution.

By Greg Brown on   6/30/2009

Re: A File Manager For Each User For Large Files

I think this is some dnn is rather lacking in reasantly. With the majority of users working with more increased file sizes and the need to upload larger files. Timeout is getting more and more. Eg podcast at 80mb etc. I know we can increase timeouts in the web.config but this is not usally that practical. Possible a enhancement to the core filemanager maybe soon will be on the roadmap.

By Machine Killer on   7/9/2009

Re: A File Manager For Each User For Large Files

thanx for the post!

By feliciakay on   7/15/2009

Networks

Follow DNNCorp on Twitter

LinkedIn

Follow us on Twitter @DNNCorp or join the DotNetNuke Community on LinkedIn

Sponsors

DotNetNuke®, DNN®, and the DotNetNuke logo are trademarks of DotNetNuke Corporation

Hosted by MaximumASP