Featured post

Fine Uploader is undeniably the best file upload library in the world, and here’s why…

There are a few competitors in the cross-browser file upload library space, most notably “jquery file upload” and “dropzone.js”. But Fine Uploader easily eclipses all others, especially these two “100% free” libraries. While some users tend to gravitate towards free libraries for their commercial web applications, they eventually realize that you get what you pay for!

Fine Uploader’s commercial licensing model allows us to continue to evolve and support the library, while still offering the library free of charge to non-commercial open-source projects. It is the most appealing choice for both non-commercial and commercial projects due to its unmatched standing in four distinctive categories: support, feature set, expert knowledge, and our insistence on “dogfooding“.

1. Best support

Fine Uploader has always strived to bring the most complete and the quickest support to all users of the library since the it changed hands back in August of 2012. We are always quick to respond to support questions posted on Stack Overflow under the fine-uploader tag. We also routinely respond to any and all bug and feature requests filed in our project’s issue tracker. Serious issues are given high priority and fixed very quickly, all with constant updates from start to finish. We are also exceptionally quick to update our library and educate our userbase in response to browser bugs. Take the recent issue with Apple’s first release of iOS8, which contained many serious bugs that broke file uploading on all Apple mobile devices across all web applications on the web. Fine Uploader’s blog post on the subject was shared thousands of times on Stack Overflow, Twitter, Hacker News, and Reddit. Fine Uploader was also the first library to include automatic workarounds in the library itself for several of the issues introduced by Apple in iOS8.

Take a look at the fine-uploader tag on Stack Overflow and our project’s issue tracker, and you’ll see how dedicated we are to responding quickly and accurately to user inquiries. The competition comes up short in this area. For example, jquery file upload recently disabled their project’s issue tracker and closed its support forums. The “maintainer” of the project does not monitor or comment on any issues or questions posted on Stack Overflow either. Dropzone.js has an ever increasing queue of new bugs and feature requests that the maintainer almost never even responds to, much less fixes. Many users have resorted to pleading for the maintainer to simply respond to bug reports, or even merge in simple bug fixes, to no avail.

Fine Uploader is different. We understand the importance of responding to user questions and requests quickly and accurately. And we understand the importance of clear documentation, which is why we are constantly working to update and improve our comprehensive documentation site and our live examples. Many web applications need to provide users with an elegant and reliable method to upload files. We understand that, and so do all of our users. You can be confident that we’re always here to help you through any issues or questions you have with Fine Uploader throughout the life of your project.

2. Most useful features

In addition to reliable support, a critical component in your web application also needs to solve many, if not all, of your most complex problems. We’ve been listening to our users over the years and have found creative and efficient ways to solve your toughest problems by architecting and implementing new useful features. Some of our features were quite difficult to implement, so much so that our competitors shied away from the challenge. Take the concurrent chunking feature introduced in Fine Uploader 5.0 for example, which allows large single files to be uploaded as quickly as possible. To date, we are the only upload library in existence that has successfully implemented this incredibly useful but also technically challenging feature.

But our useful feature set doesn’t end with concurrent chunking. We have also pushed the limits of the expected scope of an upload library by implementing highly-desired non-uploading features, such as tracking files uploaded in previous sessions and native support for deleting and editing files. These are all highly sought after features that our competitors are also lacking. Putting aside some of these advanced features, almost all web applications that accept user-submitted files have some basic feature expectations as well. For example, most would expect that such a library will be able to split large files into chunks to allow more efficient retries in case of a network failure and overcome request size limitations common to most servers. This is a feature that Fine Uploader has offered since version 3, but some of our competitors, such as dropzone.js still have no support for this critical feature. Even something as basic as auto-retry for failed uploads, which Fine Uploader has also offered since version 3, is not available with some competing solutions (such as dropzone.js).

Even though we already offer the most complete set of features among all other upload libraries available (see the feature comparison chart at on our website for details), we continue to consider new feature requests, and always give highest priority to those that are most desired by our customers. If you see another way that Fine Uploader can solve your problems, please open up a new feature request. You’ll be pleasantly surprised at how quickly and completely we respond to each and every one of your requests!

3. Unmatched expert knowledge

Fine Uploader is not the extent of our experience working with complex HTML, CSS, and JavaScript. We’re all web development experts with a quest to constantly expand our knowledge in hopes that we can benefit you in some way. One of Fine Uploader’s maintainers is even writing a book aimed at web developers looking to expand their knowledge of the web API and JavaScript (contact us directly for a free copy of this in-progress book for commercial license-holders).

But or knowledge also isn’t just limited exclusively to technology and concepts directly related to sending files from the browser to a server. We’re also Amazon Web Services experts, which was helpful when designing a module for Fine Uploader that allows you to send files directly from your browser to an S3 bucket of your choice. Our knowledge of Java and PHP has also enabled us to create complete server-side examples for a large majority of Fine Uploader users. And our fascination with video has resulted in interesting integrations with Fine Uploader, such as the “video frame uploader” library.

One of our many goals has been and will continue to be educating you. If we can help convey the meaning of an obscure browser bug, assist you in understanding how ajax requests work, or even clarify the meaning of semantic versioning, we’re glad to do so. Ensuring your comfort with Fine Uploader and the underlying technologies is a priority, and we’re always looking for ways to improve in this area.

4. We depend on Fine Uploader too!

We’re not just developers of this library, we’re customers too! Many other upload libraries are simply side projects, but Fine Uploader is both a business and a crucial component of all of our large enterprise-class web applications. For example, Media Collective, our cloud-based digital asset management system, uses Fine Uploader to allow our users to send us files, in some cases files as large as 100 GB!. Smartimage, our “lite” digital asset management system for smaller customers, relies on Fine Uploader in the same way.

Our dependence on Fine Uploader allows us to better understand how the library is used, and, as a result, we often propose and implement new features before any of our users. The same logic applies to bugs, since we heavily test Fine Uploader in our own suite of products before releasing a new version. Being able to understand how the library is used in real web applications allows us to focus on the most important features and bugs instead of wasting time on fruitless enhancements or missing the opportunity to improve a common workflow.

Commercial licensing keeps this project strong

Many of our competitors simply give away their library, but we know Fine Uploader is more valuable than that. By charging for commercial use, we are able to provide the support and rapid product evolution that you come to expect. This commercial licensing model also allows us to continue to offer Fine Uploader completely free of charge to non-commercial open source libraries. We encourage you to try out some of the free competing libraries. Once you notice an issue, or have an idea for a new feature, you’ll find that it’s entirely up to you to take the time to understand and update the codebase. Fine Uploader removes all of this responsibility from you – we take care of everything!

The future of Fine Uploader

The future of Fine Uploader is bright, and we have a lot of exciting plans. In addition to everything listed in our feature tracker, we have been compiling a number of ideas that we think will make Fine Uploader even more useful and fun to integrate. Some of our ideas include:

  • An improved AngularJS directive for Angular 1.x and Angular 2.
  • Integration with Jcrop.
  • React integration.
  • A custom Fine Uploader Web Component.
  • A golang server-side example.

The above lists only represents a few of our plans, and we’ll add more over time. Please let us know if you have any ideas or requests as well.

Happy uploading, from the entire Fine Uploader team at Widen!

Fine Uploader 5.3 – Scaling and form support improvements & lots of squashed bugs

Update: September 22, 2015 – 5.3.2 Hotfix Release

  • Huge number of files from initial files endpoint causes the browser to hang or crash (#1466)

Update: August 28, 2015 – 5.3.1 Hotfix Release

  • Retry button remains visible when initiating a retry through API (#1455)

Version 5.3 brings a few requested feature updates as well as fixes that allow Fine Uploader to work even better in environments that routinely handle a very large number of file uploads per user session. We are committed to continually enhancing existing features based on customer feedback and improving support for enterprise-level upload traffic. After all, Fine Uploader exists to provide the support and features that none of the other browser-based upload tools are capable of offering. Version 5.3 is more proof of that.

Feature Enhancements

Downloading Fine Uploader

We’ve made it easier to use Fine Uploader in an environment that switches between Azure, S3, and traditional endpoints. Starting with version 5.3, you can now download a single build of Fine Uploader that contains support for all three endpoint types. Simple select the new “S3 + Azure + traditional” option in the server type section.

Form support

You can now “lazily” bind forms to Fine Uploader. In other words, you can attach Fine Uploader to an HTML form element at any time after Fine Uploader has been initialized. Previously, you were only able to associate a form with Fine Uploader during initialization as part of your configuration options, but this is no longer a limitation as of version 5.3! This is an enhancement to the form support feature. Thanks to Joel Kemp of Adobe for the feature request.

Image scaling

Are you making use of the scaled image upload feature and omitting the original image? You may find this useful to conserve bandwidth by only sending a small scaled version of a dropped image. We’ve made this workflow more appealing in 5.3 as we are now sending the original image’s UUID with each scaled upload request.

Fixed Bugs

Image scaling

If you are using the image scaling feature, you may have noticed that image previews are not rendered when the hideScaled option was set to true due to a bug. This was fixed in 5.3. We also fixed a somewhat related bug in the image scaling module that prevented an attempt to cancel all in-progress uploads when a scaled image is currently in progress. Scaled images are cancelled as part of the call to the cancelAll method, even if the scaled images are “hidden” in Fine Uploader UI.

Manual uploading

We recorded two fixes to the manual upload feature, which allows you to defer uploading of user-selected files to a later point via an API method. The first fix allows you to trigger uploading of stored files via the API inside of an onSubmitted callback handler. And the second addresses an issue that prevents the call to uploadStoredFiles from uploading all submitted files when a very large number of files (thousands) have been submitted.

Resuming uploads

Tim Daubenschütz found an issue that prevented the getResumableFilesData method from returning information about resumable files. This was fixed in 5.3 as well. Thanks for catching this Tim!

What’s Next?

The next planned release is currently version 5.4. We plan to add support for version 4 signatures to Fine Uploader S3. This will allow files to be sent to new S3 regions, such as the Germany (Frankfurt) region. We’ll also clean up and update the S3 documentation and smooth out support for sending headers and parameters to S3 along with each file. We also hope to add support for Microsoft Edge, but will likely forgo explicit support until the Edge team adds the ability to drop files from the desktop into the browser.

We Love Customer Feedback

Is something missing from Fine Uploader? Please let us know. We always give priority to useful customer-requested features. Take the opportunity to guide the evolution of Fine Uploader around your needs. The community is the most important aspect of this library, and we always love to hear from you.

Happy Uploading!

Fine Uploader 5.2 – Major UI Improvements, New Gallery View, Accessibility Updates

Update: June 8, 2015 – 5.2.2 Hotfix Release

  • Canceling a file with a queued thumbnail preview prevents other queued thumbnails from being generated. (#1416)
  • Deleting an uploaded file with a thumbnail in the (to-be-generated) preview queue prevents subsequently selected files from receiving generated thumbnail previews. (#1419)
  • Trash button is occasionally pushed to the next line in gallery mode. (#1418)
  • Trash button submits the form (if enclosed in a non-Fine-Uploader controlled form) after files have been uploaded successfully. (#1417)

Update: April 21, 2015 – 5.2.1 Hotfix Release

  • File input elements cannot be passed into addFiles API method on modern (File API) browsers  (#1398)

We are excited to announce the official release of Fine Uploader version 5.2!

UI Enhancements

5.2 brings major updates for Fine Uploader UI. Until version 5.2, Fine Uploader’s UI has remained mostly constant since its inception. We now offer a brand new modern CSS file, fine-uploader-new.css, which can be used with any existing Fine Uploader UI templates. To use the new look, simply reference this new CSS file in your project after upgrading to Fine Uploader 5.2. If you wish to continue using the old Fine Uploader UI display, you will not need to change anything.

We also added support for the new native browser


. As of 5.2, only Opera and Chrome support this element. However, once other browser add support, Fine Uploader will be able to use this new element in those browsers as well, without any code changes required. Currently, you must include appropriate

elements in your Fine Uploader template (already included for you in the default provided templates). If these are present, and the current browser has sufficient support, the element will be used to render confirm, alert, and prompt dialogs.

The new UI updates have been introduced without any breaking changes at all. You may continue to use Fine Uploader’s old look and continue to use any custom template adjustments or dialog/alert message implementations without changing any code.

You can also make use of the new gallery view. To integrate Fine Uploader’s customizable gallery view into your project, you will need to use the new gallery template and the fine-uploader-gallery.css file. The gallery view also makes use of several new icons introduced as part of the 5.2 release. Ensure that these new icons – continue.gif, pause.gif. retry.gif, and trash.gif – are accessible via the gallery CSS file as well.

Both new UIs share a default visible drop zone with background text (controlled by CSS) that matches the current browser’s capabilities:


Here is a preview of the gallery view, before and after uploading files:



Have a look at our updated live demo section on the Fine Uploader home page for code examples and additional designs. Customization and use of the new templates, styles,

support, and CSS is described in the updated styling documentation on our documentation site.

Accessibility Improvements

There were a number of accessibility-related adjustments to be made to Fine Uploader UI, the docs site, and the home page. In the interest of accommodating any and all users who must interact with Fine Uploader, we wanted to make a concerted effort to address any related deficiencies in this library and associated sites. We are happy to announce that this effort was successful, and Fine Uploader 5.2 (along with the docs site and home page) contains a substantial number of accessibility adjustments. We will continue to audit Fine Uploader for accessibility conformance going forward. If you happen to notice any accessibility obstacles we missed, please file an issue so we can schedule a fix as soon as possible.

Other Features

Support for uploading via PUT request

For all browsers other than IE9 and older, you may now ask Fine Uploader to submit upload requests to your server via a PUT (or even PATCH) request. Upload success requests may be sent via PUT as well. These methods can be specified via a new request.method option and the new S3 uploadSuccess.method option, respectively.

Uploading videos via iOS8 mobile Chrome now supported by default again

A workaround was put into Fine Uploader 5.0.5 to prevent Chrome from crashing in iOS8 due to issues with the Chrome browser and iOS8. This workaround, unfortunately, prevented videos from being uploaded in mobile Chrome due to another long-standing Apple iOS bug. This workaround is now disabled by default in Fine Uploader 5.2 as the underlying issue in mobile Chrome and iOS8 appears to be fixed.

Bug Fixes

  • Large S3 uploads hang w/ async key function and concurrent chunking enabled (#1394)
  • QuotaExceededError when trying to upload file when using Safari private browsing (#1395)
  • Empty file check validation is broken. (#1381)
  • “Retrying…” message remains in Fine Uploader UI even after failed chunk retry has succeeded. (#1349)
  • Pause button remains visible in Fine Uploader UI even after upload has failed. (#1367)


Fine Uploader 5.3 is the next planned version. Our top priority for 5.3 is to tackle S3 version 4 signature support. For a list of other cases to be completed in this version, please see the 5.3 milestone tracker in GitHub. Please be advised that cases may be removed or added from the milestone even after work on the milestone has commenced.

As always, we have continued to add the features that you all demand the most. Thanks again for your continued support. It is due to the backing of commercial license holders, everyone reporting bugs, those who suggest great features, and all the people that have expressed their support for this library that make it as great as it is.

Thanks for being a part of Fine Uploader!

P.S. Head on over to http://fineuploader.com for demos, documentation, and downloads!


Fine Uploader 5.1 – S3 CDN support, canvas uploads, & performance enhancements

Update: January 8, 2015 – 5.1.3 Hotfix Release

  • Some files that fail validation may not be marked as rejected.  (#1345)

We are excited to announce the official release of Fine Uploader version 5.1

The two biggest features in v5.1 include the ability to upload to Amazon’s Simple Storage Service (S3) via a CDN (such as fastly).  You can also upload to an S3-like storage service, that is, a non-Amazon storage service that follows the S3 API but does not use the same conventions related to bucket naming.

Also, by popular demand, uploading a <canvas> is dirt-simple.  Simple pass an existing <canvas> into Fine Uploader’s addFiles API method, and Fine Uploader will take care of the rest for you!

Other Features

Dynamically change the item limit

If you’d like to adjust the validation item limit set during initialization, you can easily make this adjustment at any time now via a new API method.

Dynamically change the upload success endpoint for S3/Azure

You can make this adjustment for all files or specific files via a new API method.

File parameters / form data sent to S3/Azure upload success endpoint

Instead of querying S3 in your upload success server code, you can pull any parameters associated with the file directly off of the upload success POST request sent by Fine Uploader.

More generic Fine Uploader S3 error messages

Previously, Fine Uploader would explicitly mention S3 when reporting upload errors in the S3 module.  The explicit references to S3 have been removed to better support S3-like endpoints.

Bug Fixes

  • Large number of thumbnail previews may cause browser to crash. (#1279)
  • DnD module makes the drop zone a block level element on hover. (#1273)
  • Canceling an in-progress upload does not hide total progress bar. (#1303)

We also worked on a number of tasks to improve the quality and consistency of Fine Uploader’s codebase and build scripts.

Licensing Change

Starting with version 5.1, Fine Uploader is licensed exclusively under the Widen Commercial License.  If you are using Fine Uploader for commercial purposes or in a commercial product, you must purchase a license. If you are using Fine Uploader in a free open-source product, you may use Fine Uploader free of charge.  In either case, you may download Fine Uploader directly from our site.

Downloading Fine Uploader

Starting with version 5.1, anyone may download Fine Uploader directly from our site.  Please be aware of the licensing associated with Fine Uploader (described in the above section).  You may also access Fine Uploader on npm.  This can be as simple as running “npm install fine-uploader”, which will grab the latest stable version from the npm registry. We will likely add Fine Uploader to various Content Delivery Networks in the future as well.

Note that current versions of Fine Uploader are no longer available on the jQuery plug-in registry, as the jQuery team has stopped maintaining their registry.


As always, for up-to-date information about features and fixes planned for the next release, please see the milestone in the Github issue tracker. At the writing of this post, we are in the process of planning the 5.2 release.

As always, we have continued to add the features that you all demand the most. Thanks again for your continued support. It is due to the backing of commercial license holders, everyone reporting bugs, those who suggest great features, and all the people that have expressed their support for this library that make it as great as it is.

Thanks for being a part of Fine Uploader!

iOS8 presents serious issues that prevent file uploading

Each new version of iOS seems to come with new bugs surrounding browser-based file uploads. Today, we detected a number of new and very serious upload-related issues in the iOS8 gold master build.  For those of you unfamiliar with this term, “gold master” is generally the last build of an in-beta Apple product that will eventually become the officially released version.

We’ve compiled a list of the file-upload-related issues, by browser. The issues discussed here may appear in earlier iOS8 betas as well.  These new issues, coupled with existing issues in iOS browsers, make uploading files via your iPhone or iPad nearly impossible at this point.


New to iOS8:

Chrome & UIWebView

New to iOS8:

Safari, Chrome, and UIWebView


With these outstanding bugs, File API support and file uploads are now completely broken in Safari.  In Chrome, video uploads are impossible, and image uploads only possible if the “multiple” attribute on the file input element is included.  In any app run inside UIWebView, all file uploads are possible, but only if the multiple attribute if left off of the file input element.

We have filed bugs with Apple and Google, but we encourage you to file issues as well.  It is critical that these issues are fixed before iOS8 releases to prevent a complete loss of browser-based file upload and file manipulation for mobile Apple device users.  This is not just a Fine Uploader issue.  Rather, it affects any browser-based applications that accept file uploads, manipulate, or read files client-side.


How We Are Dealing With This in Fine Uploader

Fine Uploader 5.0.5 includes a workaround for the browser-crash issue.  A workaround for the 0-sized video uploads has been a part of Fine Uploader for quite a while already, but, keep in mind, the workaround for the browser crash issue negates the 0-size video upload workaround in Chrome and UIWebView.

The bug in iOS8 Safari that prevents any sort of file uploads or file reading cannot be worked around.  Instead, we have added some code that identifies this browser and alerts users.  The alert explains the issue a bit, and asks users to switch to Chrome until Apple addresses the bug in iOS8 Safari.

All workarounds are now attached to options, and can be disabled by setting the corresponding flag to false.  See the new workaround option documentation for more details.  It is unlikely that you will ever want to disable these workarounds (as we intend to revert these workarounds once the corresponding browser bugs are fixed), but, just in case, this is possible.  Note that you can also customize the alert displayed to your users in iOS8 Safari by overriding the default text for the unsupportedBrowserIos8Safari message.

Update: September 18, 2014

The released version of iOS8 (8.0) contains all the bugs described above.  Workarounds and detection methods are present in Fine Uploader 5.0.5.

Update: September 24, 2014

Apple released a hotfix update today: 8.0.1.  This hotfix appeared to address the broken file input and File API in iOS8 Safari.  It also seemed to fix the long-standing issue that resulted in upload of 0-sized videos when the file input element contains a multiple attribute.  Sadly, 8.0.1 contained some other serious regressions that prevented some devices from obtaining cellular service.  As a result, Apple aborted the 8.0.1 update shortly after its release.  There is no known planned release date for 8.0.2, as Apple is unnecessarily secretive about dates (among other things).  Given the serious quality issues with the last two iOS releases, it seems likely that Apple will take a bit more time before releasing 8.0.2.  So, perhaps the release that addresses the issues described above could be weeks off, if not more.


Update: September 29, 2014

Apple released a hotfix update a couple days ago: 8.0.2.  This hotfix appeared to address the broken file input and File API in iOS8 Safari.  However, videos now cannot be uploaded successfully at all in Chrome.  We are considering an 8.0.2-targeted hotfix release for Fine Uploader that disables the workaround targeted at Safari for iOS 8.0.2 and up.  Unfortunately, iOS8 still has a number of serious bugs at this point.  You might want to encourage any of your users tied to Apple devices to stick with iOS7, or, better yet, iOS6.

Fine Uploader 5.0 – Concurrent Chunking

Update: December 3, 2014 – 5.0.9 Hotfix Release

  • Disabling cookies prevents the uploader from initializing. (#1324)

Update: October 9, 2014 – 5.0.8 Hotfix Release

  • File drag & drop doesn’t work in IE11. (#1309)
  • File chooser button doesn’t render properly in IE8 (#1306)
  • Paste event handler is not removed when uploader is reset. (#1305)

Update: October 1, 2014 – 5.0.7 Hotfix Release

  • Only target iOS Safari upload limitation for iOS 8.0.0.  Uploads in Safari should work starting with iOS 8.0.1. (#1284)

Update: September 18, 2014 – 5.0.6 Hotfix Release

  • Multiple file selection not possible after initially submitting multiple files via file chooser. (#1287)

Update: September 17, 2014 – 5.0.5 Hotfix Release

  • Files cannot be uploaded at all in iOS8 Safari  Please see the post on iOS8 browser bugs for more details. (#1284)
  • Browser crashes in iOS8 Chrome when multiple option is set to false.  Please see the post on iOS8 browser bugs for more details.  (#1283)
  • “qquuid” meta tag missing in Fine Uploader S3 upload requests.  (#1286)
  • With scaling enabled and the multiple option set to false, files cannot be uploaded.  (#1278)
  • Upload choose button may require a double click in IE for a large button.  (#1277)
  • Traditional endpoint cross-origin uploads broken in IE8 & IE9.  (#1272)
  • Tall upload chooser buttons do not invoke file chooser dialog unless top of button is clicked.  (#1152)

Update: August 25, 2014 – 5.0.4 Hotfix Release

  • Fixes an issue that prevents the cancelAll API method from actually cancelling all uploads. (#1262)
  • Fixes an issue that prevents the correct associated button element from being passed to the onValidate event handler. Also, non-standard properties may be passed to this handler via the blobData parameter. (#1261)
  • Fixes an issue that results in passing of an empty name parameter to the onProgress event handler. (#1255)
  • Ensures that an empty/invalid name isn’t appended to scaled file names if the name property is left off of a scaling option entry. (#1243)

Update: July 1, 2014 – 5.0.3 Hotfix Release

  • Fixes an issue where non-image files are not uploading when scaling is turned on and sendOriginal is off. (#1238)

Update: June 17, 2014 – 5.0.2 Hotfix Release

  • Fixes an issue with iOS subsampling images larger than 2 megapixels during the image scaling process (#1231)

Update: June 5, 2014 – 5.0.1 Hotfix Release

  • On traditional endpoints, when a chunked upload completes the server responseJSON does not get passed to the handler (#1227)

We are excited to announce the official release of Fine Uploader version 5.0.

This is a major version release due to some breaking changes we made to support a great new feature: Concurrent Chunking! This is a feature that other libraries have attempted to implement, without success. Fine Uploader is the ONLY upload library to offer concurrent chunking. This new feature is targeted at applications that expect users to upload single very large files.

Our internal tests that involved uploading multiple chunks for a specific file concurrently showed significant improvements in bandwidth utilization. For example, on our internal network, sending a 110 MB file to S3 with chunk sizes of 5 MB took about 22 seconds when chunks were uploaded one-at-a-time (with concurrent chunking disabled). When maxing out the default maxConnections for that file (3 chunks at once, concurrent chunking enabled) the same file uploaded in about 12 seconds. All other users who tested this feature during the beta phase reported similar results.

You can read more about this new feature on the associated feature page on the docs site.

Other Features:

Support for other promise implementations

This change allows you to use any A+ certified promise impl (such as RSVP or Q) when communicating with Fine Uploader. You may also continue to use Fine Uploader’s own (non-A+-certified) promise implementation.

Dynamically Set Custom Headers

This is targeted specifically at traditional upload endpoints (not S3 or Azure). A new method, setCustomHeaders, has been added to allow you to set upload request headers at any time after the upload instance has been created.

Bug Fixes:

  • Form support parser ignores textarea elements (#1204)
  • Retry Button should remove qq-hide while visible (#1193)
  • File size of 20 bytes is reported for all files in older browsers (#1161)
  • Google Closure Compiler Error (#1163)
  • dataTransfer.items is an object in Chrome and passes the truthy test then throws on the array indexer after && causing a bug (#1166)
  • Total Progress Bar Shows/Hides in rapid succession (#1175)


As always, for up-to-date information about features and fixes planned for the next release, please see the milestone in the Github issue tracker. At the writing of this post, we are in the process of planning the 5.1 release.

As always, we have continued to add the features that you all demand the most. Thanks again for your continued support. It is due to the backing of commercial license holders, everyone reporting bugs, those who suggest great features, and all the people that have expressed their support for this library that make it as great as it is.

Thanks for being a part of Fine Uploader!

Fine Uploader 4.4 Released!

We are excited to announce the official release of Fine Uploader version 4.4. That’s the 37th release! As always, we have continued to add the features that you all demand the most. Thanks again for your continued support. It is due to the backing of commercial license holders, everyone reporting bugs, those who suggest great features, and all the people that have expressed their support for this library that make it as great as it is.

Here are some notable additions that are part of the 4.4 release:


Client-side image scaling

This feature gives Fine Uploader the ability to resize images on the client, and upload the resized versions (along the with the original and all EXIF data) to your server. That means less work for your server and saved money for those who are paying by the clock cycle.

The documentation on image scaling contains information on how to set up scaling on the client, and modify the various options.

Total Progress Reporting

A brand new feature for users of UI mode is total progress reporting. Fine Uploader has had progress-bars for each file for a while now, but one feature that was requested was to show progress for all of the uploads. It has always been possible to hook into existing events to display an aggregate progress-bar, but with this latest release it has become much easier. See the documentation on progress bars for more information.

Also part of this feature is the addition of the totalProgress event. This event will report the total progress for a batch of files in the AJAX uploader. The event will be emitted when an individual file’s progress changes, a file is added, and when a file is cancelled.

Folder Paths

It is now possible to detect the full paths to any files or directories added to the uploader as children of a directory when dragging and dropping a folder in Google Chrome and Opera.

Multiple-endpoint Custom Builds

The custom build generator now has the capability to create builds with multiple endpoints. This means you should never need to create more than one custom build because you can select any combination of one or more endpoints.

Bug Fixes:

  • Allow function parameters in S3 modes (#1105)
  • Drop zones are properly hidden when dragging in and out of browser in Safari, IE10, and IE11 (#1034)
  • Blobs and Data URI generation in Androids’ stock browser (#1146)
  • setName now updates the name UI (#1138)
  • drawThumbnail correctly renders image in iOS (#1131)
  • Prevent resumption of currently uploading file (#1101)
  • Thumbnail process correctly handles unreadable files#1143
  • Fix exception when using standalone drag and drop module for the S3 uploader (#1132)


As always, for up-to-date information about features and fixes planned for the next release, please see the milestone in the Github issue tracker.

The next release is already in the works and some big things are going to be included. We plan to take a serious look into implementing a few new ideas to the basic upload algorithm with the goal of supporting multiple simultaneous chunked uploads.

Thanks for being a part of Fine Uploader!