Plupload released

February 3rd, 2010 by Afraithe

PluploadUsing Plupload you can upload multiple files using Google Gears, Silverlight, Flash, BrowserPlus or HTML5. Flexible configuration allows you to choose all or only some of these upload “runtimes” with fallback in the order you specify. The license is GPL for you to enjoy.

There are a few really interesting features available, such as:

  • Drag  & drop.
  • Client side image resizing before upload.
  • Select file type filtering.
  • Chunking to allow uploading huge files without any problems.

Want to try it out?

Check out the website.

Note that some features only work with some runtimes and browsers, check the feature list on the Plupload website for more information. Also note that this is a first release version and may contain some bugs.

And if you are interested in the source, you can fork the project on GitHub.


Posted in Cool stuff, Development, Software, Work

35 Responses

  1. Laura Says:

    Will this make its way into TinyMCE?

  2. Ryan Says:

    This is incredible! I’ve been sitting trying to code a very basic flash uploader for the last few days and again Moxiecode deliver a winner.

  3. Spocke Says:

    @Laura: We will use this in the MCImageManager/MCFileManager products for the upcoming major release so yes you will be able to use it together with TinyMCE.

    @Ryan: Thanks, feel free to fork and help out with Plupload. We need ideas and developers. ;)

  4. Lloyd Hilaiel Says:

    Wow, a very interesting piece of work, can’t wait to dig in. I think you may have obsolesced something similar we put together! thank you! :)

    Please feel free to “bug” us (browserplus folks) about chunking support, or whatever else gets in your way.


    everything else:


  5. Spocke Says:

    Thanks, nice to hear that you like it.

    We found a few bugs and issues especially with the drag/drop support. Will report them as soon as we can. But the rest of the BrowserPlus implementation was a smooth ride. :)

  6. Benjamin Says:

    Plupload looks excellent. Thank you, MoxieCode, for continuing to pump out great open source code.

    Are there plans to release a commercially licensed version? The GPL seems like the wrong choice for a library that could have such wide appeal if licensed more “liberally.”


  7. Afraithe Says:

    Thanks Benjamin, Plupload is still fresh out of the box, but yes, plans are to offer some sort of commerciall license for it, we just need to work out some details first.

  8. Ajaxian » Plupload: A rich upload experience on pluggable backends Says:

    […] Moxiecode folks (TinyMCE fame) have released a generic component Plupload that allows you to create a rich upload experience on the back of a variety of transports. Whether […]

  9. Peter Says:

    Is this correct, that when i say it should use engines HTML 5 and Flash, and the browser doesn’t support html5, it automatically takes flash?


  10. Spocke Says:

    Yes, it will follow the list so if html5 support doesn’t exists it will try flash if that doesn’t exist it will move on to the next one etc. So Chrome, Safari and Firefox can use HTML 5 then a fallback on IE could be Flash or Silverlight.

  11. Peter Says:

    Thats awesome!!
    I was just looking for such a plugin!

    Keep up the great work

  12. Plupload – L’ultime gestionnaire d’upload « Le Cri Des Geeks Says:

    […] développeurs de TinyMCE ont développé une bibliothèque proposant au développeur une api générique permettant […]

  13. Plupload: A rich upload experience on pluggable backends | Programming Blog Says:

    […] Greet Box WordPress Plugin The Moxiecode folks (TinyMCE fame) have released a generic component Plupload that allows you to create a rich upload experience on the back of a variety of transports. Whether […]

  14. Franz Says:

    cool stuff! one feature request: it would be nice if plupload could create a thumbnail view of the images in the upload queue

  15. Spocke Says:

    Thanks, that would be a neat feature in fact it would be nice to be able to produce multiple sizes of the images.

    But we need to restructure the current logic a bit before that can be implemented. Please file an issue on GitHub about this so that you can track the progress on that feature and that we don’t forget to implement it soon. :)

  16. Nathan Says:

    This looks GREAT!

    Unfortunately, I can’t use it because its GPL-ed and would poison my entire web app. Given that I don’t really want to make the entire source of my project available under the GPL, I have to wait.

    Please consider the MIT license or some other less-restrictive license format !

  17. Andy L Says:

    Why use a viral license like GPL?

    Why not LGPL?

    Or, even better, MIT.

    Being GPL, many commercial projects will NOT use it (because they would have to open source their code).

  18. Spocke Says:

    We have plans for a separate commercial license of this product. That would help us fund the continuing development of this project. But we haven’t yet decided on the details.

    The GPL license enables you to use it with many GPL based systems out there.

  19. CJ Slade Says:

    Custom upload example isn’t worked for me.
    Opera 10.10, flash/silverlight runtimes.

    Anyway, good work!

  20. Brian Says:

    Flash and Silverlight don’t work for me in IE8

  21. Afraithe Says:

    Using 64-bit version of MSIE8? Afaik Flash does not work in 64-bit yet.

  22. Alex Says:

    Great stuff!! Would be great to be able to detect image dimensions as well as just file size. And Ill add a second vode on Franz’s comment on thumbnail preview!

    Any idea whats up with Gears?? Is Google going to maintain this? (Not compatible with FF 3.6)

  23. Spocke Says:

    Grabbing image dimensions is pretty easy to add however it’s currently not possible in WebKit since it doesn’t have direct file access.

    Gears is no longer developed by Google but they have said that they will maintain the code. I think it’s way to soon for them to drop gears. HTML 5 is not there yet.

  24. Fredrik Says:

    Really nice work, bummer I can’t use it in my current project due to the the GPL license (I bet an alternative will be developed).

  25. ekerazha Says:

    no LGPL, no MIT -> looking for another product

  26. Stephen Says:

    I think I understand the decision you all made to go with GPL v2, but licensing needs to be looked at again.

  27. Weekend Links « a work on process Says:

    […] to Ajaxian I spotted Plupload – “a generic component that allows you to create a rich upload experience on the back […]

  28. Gelle Says:


    it would be great if I could simulate the “click” event for the flash object. So my current button with it’s css styles and events (“hover”) will not be overridden by the flash_container div. If it is possible?

    This works:


    So can wie have an interface like:


  29. Spocke Says:

    It’s not possible to simulate a click. Adobe will only allow you to open a file selection dialog if it’s done in a click event.

    This is a silly security feature they added, it would have been much better if they asked the user for permission before opening the file selector dialog.

  30. Tom Says:

    Figured out the problem with load() and the multipart data, thanks for turning me on to that Spocke. It was a problem with the class I was using…Despite the raw post output looked IDENTICAL.

    @Gelle – I can also attest to it being impossible to simulate the click event, I’ve tried every which way…You can’t even send the click event from one swf to another via local connection…You can’t clone another event and dispatch that later either. It’s pretty tight. The security issue even will get you in other ways if you aren’t careful.

    The solution is a transparent overlay of the swf accepting a click anywhere on the stage. That swf is then carefully placed on the page wherever you want. This however becomes an issue if you want multiple areas to click. Plupload uses this clever trick as does swfupload. Totally agree with Spocke and the community at large on this one…It’s a bad decision from Adobe.

  31. Seg Says:

    Demo on site not working (look the file sizes in different runtime uploaders after upload). On my server not working the same way.
    Some error in php examle :(

  32. Spocke Says:

    This is a feature. Images get resized so the file size changes on upload. And it’s different depending on runtime since they use different encoding algorithms.

  33. Delifisek Says:

    Not Working,

    Send files in tmp but not moved…

    Any idea for working upload.php ?

  34. Spocke Says:

    Please use the forums at for discussions etc. Thanks

  35. Webstandard-Blog Says:

    Awesome, thx for sharing that script!