Fine Uploader 5.10 – Higher quality scaled images

Version 5.10 of Fine Uploader will benefit any product or workflow that uses the thumbnail generation or upload scaled image feature. In short, 5.10 will allow you to delegate the actual resize operation to a third-party library. Fine Uploader delegates to the drawImage method on the browser’s <canvas> element when resizing image files. Most browsers use linear interpolation when resizing images. This can lead to extreme aliasing and moire patterns. But a few third-party libraries bypass this native algorithm in favor of one that results in much higher-quality scaled image output. You can plug one of these (such as pica) into Fine Uploader very easily starting with 5.10.

For a very simple example that illustrates how to integrate pica or any other high-quality image scaling library into Fine Uploader, take a look at the thumbnail generation and scaled image generation feature pages on the documentation site. You have the option of utilizing a third-party scaling library for thumbnail generation, or scaled image file generation, or both!

Happy uploading!

Fine Uploader 5.9 – Free At Last!

Version 5.9 brings about a noteworthy change. No, not a new feature, or a major bugfix. The only change here is the license. Fine Uploader is now MIT-licensed 100% free open source software! This is the start of a whole new era for Fine Uploader and other related projects. If you have questions about this change, or would like to know more about the history of this project and our plans for the future, longtime maintainer Ray Nicholus published an article on Medium today that should answer most of your questions.

Happy uploading!

Fine Uploader 5.8 – CommonJS & ES6 Module Support

It’s now dirt simple to import Fine Uploader into your project using CommonJS, ECMAScript 6 imports, or even AMD. If you download Fine Uploader via npm, you will instantly have access  to this feature. You’ll find that importing the library into your modern web project is exceptionally elegant. Depending on your needs, it may be as simple as “import qq from ‘fine-uploader'”! There is a very detailed feature page on the documentation site that you may enjoy reading, should you find yourself in need of this type of support.

If you see any issues with CommonJS, ES6 module, or even AMD support, please do open an issue in Fine Uploader’s issue tracker. Happy uploading!

Fine Uploader 5.7 – Support for Microsoft Edge

Update: April 26, 2016 – 5.7.1 Hotfix Release

  • XHR object is not passed to onError callback in some cases w/ Fine Uploader S3 (#1559)

 

Version 5.7 finally brings support for Microsoft Edge – a browser that will eventually replace all versions of Internet Explorer. There were a few changes to Fine Uploader that were required to officially support Edge. This particular enhancement was in progress for quite a long time. A number of issues outside of my control (such as lack of file drop support in Edge and lack of an updated VM) prevented this from landing sooner, but we finally reached the end of the tunnel! Documentation has been updated to reflect support for Edge, and you can begin using Fine Uploader with Edge in your projects as of version 5.7.0. Note that you must use Microsoft Edge version 13.10586 or newer for proper support.

If you see any issues with Edge support, please do open an issue in Fine Uploader’s issue tracker. Happy uploading!

 

-Ray

Fine Uploader 5.6 – A more flexible API

Version 5.6 brings a couple of user-requested updates to our options and API. First, a new method – “addInitialFiles” – was added to complete case #1191. This addition allows initial/canned files to be fed into the uploader at any time. Previously, this was only possible during initialization or reset.

Second, a text.fileInputTitle option was added. This allows the “title” attribute of the file input element managed by Fine Uploader to be customized. The title attribute can be customized via a new “fileInputTitle” property on the “extraButtons” option when creating an extra button as well. This completed a request detailed in case #1526.

Stay tuned for more updates to Fine Uploader, and, as always, please do let us know which features are more important to you.

Fine Uploader 5.5 – Heavily Requested S3 Updates

Update: March 7, 2016 – 5.5.2 Hotfix Release

  • S3 bucket name for validation is always tied to bucket URL in IE9 and older (#1530)

 

Update: February 23, 2016 – 5.5.1 Hotfix Release

  • Concurrent chunking on S3 fails to finalize (#1519)

 

Support For User Machine Clock Drift

Work completed in #1387 means that issues with inaccurate clocks on user machines are easily handled simply by comparing the user’s clock value with your server and passing the difference to Fine Uploader S3. You can read more about this feature on the updated S3 feature documentation page.

Better Support for Standard HTTP Headers

Before work on #1494 was completed, it was not possible to associate certain HTTP headers with your files uploaded to S3 via Fine Uploader S3. Now, you can easily include Content-Disposition, Cache-Control, Content-Encoding, and many others via the API or options. See the new “headers” section on the updated S3 feature documentation page for more information.

 

What’s Next?

The next planned release is currently version 6.0, which will contain some substantial new features and adjustments. Some of the big plans we have for 6.0 include:

  • Support for module systems, such as ES6 modules and CommonJS.
  • The ability to require/import only the parts of Fine Uploader that you need.
  • Slimming down of the library to reduce footprint.
  • Better support for strict Content Security Policies.

Expect breaking changes in the API, which are necessary to evolve the library.

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.4 – AWS S3 Version 4 Signature Support

Update: November 17, 2015 – 5.4.1 Hotfix Release

  • HTML structure of initial file lists is invalid. (#1498)

 

Support For AWS S3 Version 4 Signatures

Since version 3.8, Fine Uploader has natively supported uploads directly to an S3 bucket from the browser. Requests were signed using Amazon’s version 2 signature algorithm. Since then, AWS has been pushing a vastly different signing algorithm, known as version 4. While all S3 regions support version 2 and version 4 signatures, newer regions, such as Frankfurt, only support version 4 signatures. Future regions will likely have the same limitation. As a result, version 4 signature support has been heavily requested of Fine Uploader S3 users. Starting with Fine Uploader 5.4, this signing algorithm is officially supported by the library. This support extends to “serverless” uploads to S3 and uploads to S3 through a CDN/proxy.

Adding support for version 4 signatures to Fine Uploader S3 was a significant undertaking due to the extreme complexity of the new signing process. Luckily, I was able to do this without any breaking changes to the library. As a result, if you want to continue using version 2 signatures, you do not have to make any changes to your server or client-side code after upgrading to Fine Uploader 5.4. Version 4 signature support exists alongside version 2. If you’d like to enable version 4 support, you must follow these steps:

  1. Set the signature.version option to 4. You may also use a value of 2 to explicitly switch to version 2 support, but this is not necessary as the default value of this option is 2.
  2. Optionally set the objectProperties.region option to the appropriate region for your S3 bucket. This defaults to “us-east-1”.
  3. Update your server-side signature code to support version 4 signatures. I have updated the PHP, Java, and NodeJS server-side examples to include this support. For other languages, please follow the directions on the S3 server-side documentation page.

Note that there are browser-side performance consequences associated with version 4 signatures when the chunking feature is enabled. This is, unfortunately, unavoidable, as Amazon has required all chunk data (including the file bytes) to be hashed. Fine Uploader, of course, must do this in the browser before sending the signature request to your server.

Fine Uploader 5.4 also brings a host of bug fixes. For more information, please see the list of cases associated with this milestone in the GitHub project’s issue tracker.

What’s Next?

The next planned release is currently version 5.5. In this next version of Fine Uploader, we plan to address support for standard HTTP request headers in Fine Uploader S3. This will allow you to, for example, easily set a Content-Disposition header on any object uploaded to S3 in order to force a download when the object is requested. Additionally, Fine Uploader S3 will be adjusted to accommodate clock drift on a user’s machine. This will put an end to issues the prevent uploads to S3 when an uploader’s machine time is not accurate. The next planned release after 5.5 is 6.0, which will contain some substantial new features and adjustments.

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!