The Fine Uploader project has reached the end of its life. Please see the issue tracker for additional details.


File uploading without the hassle

Easily create a powerful, elegant, and flexible file upload component with React.
Fine Uploader supports iOS, Internet Explorer, Opera, Firefox, Chrome, Safari, and Android

Browser support

Fine Uploader supports all major browsers and does not require Flash, jQuery, or any external libraries.

Fine Uploader supports erlang, Java, PHP, python, node.js, coldfusion, perl, ruby, go, and all other server-side languages.

Server support

Use Fine Uploader with any server side technology.

Get started now!


Progress Bar

A fully customizable progress bar is included in UI mode. Core users can build their own with the help of a friendly API.

Drag and Drop

Drag and drop files (and even folders in Chrome and Opera) straight from your desktop.


Sometimes the network misbehaves. Fortunately, Fine Uploader can detect these sorts of disturbances and notify the user, or even automatically retry uploading the failed piece.


Limit your users to a specific file type, size limit, number of files, image dimensions, or write your own custom validator.

File Chunking / Partitioning

Splitting a file into smaller pieces allows for a more efficient overall upload, and powers some Fine Uploader features such as pausing, and resuming uploads. Fine Uploader can also upload multiple chunks for the same file concurrently.

Pause / Resume Uploads

Pause an in-progress upload when you know you are about to go offline, and safely resume them again right where you left off.

Delete Uploaded Files

Upload the wrong file? Use this feature to delete what you don't need.

Upload to the Cloud

Send files directly to Amazon’s Simple Storage Service (S3) or Microsoft Azure's Blob Storage service to minimize backend code and scale with the number of users. You can even optionally bypass your local server entirely with S3.

Image Previews & Scaling

Give your users an in-browser preview of images before they upload. You can even have scaled versions of images generated and uploaded automatically, keeping EXIF data intact.

Select more than one file at a time.

Import Fine Uploader using ECMASCript 6 modules, CommonJS, AMD, or traditional <script> tags. More details on the modules feature page.

Customize the layout simply and easily by editing HTML and CSS; no JavaScript!

Fine Uploader can begin uploading files as soon as possible, or simply wait until for the user.

Fine Uploader makes handling cross-origin environments pain-free.

Fine Uploader makes it simple and easy to cancel one or all of the currently uploading files.

Allow your users to change the names of the files they are uploading.

Ask Fine Uploader to display an initial list of files uploaded in a previous session.

Support for complex web applications that may have multiple upload inputs.

With a browser that supports HTML5 Clipboard API and Fine Uploader one can easily enable users to upload files that they have copied onto their clipboard.

Take a picture and upload it immediately afterward.

Easily add the ability to upload files to an existing HTML form.

Visit the docs for more feature information


Completely "free as in speech" open source software, developed by the community, and sponsored by a company that cares.

Here are a few other reasons to choose Fine Uploader:

  • Meticulously developed, maintained, and supported. Unmatched by any other similar library available.
  • Flexible enough to fit into your typical or completely atypical web app.
  • Connected to the community. Developed, maintained, and supported by developers who rely heavily on the library.
  • Organized, maintained, and overseen by frontend development experts.

Applications using Fine Uploader

DF Studio
Storyboard That

Around the Web

design crazed
smashing magazine