We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Trusted by the world’s leading companies

Syncfusion Trusted Companies


The JavaScript File Upload is a control for uploading one or multiple files, images, documents, audio, video, and other files to a server. It is an improved version of the HTML5 upload control (<input type="file">) with a rich set of features that include multiple file selection, progress bars, auto-uploading, drag and drop, folder (directory) uploading, file validation, and more.

JavaScript file upload built using AJAX

AJAX file upload

The JavaScript file upload control seamlessly uploads files in the asynchronous mode using the AJAX library.

Upload large files

Manage large file uploads in JavaScript efficiently using chunk upload. Large files are sliced into smaller chunks and uploaded to the server in sequential order in the asynchronous mode.

HTML5 fileupload process large files using chunk upload

JavaScript fileupload with pause, resume, retry, and cancel

Resumable upload

A built-in feature is available to pause, resume, retry, and cancel a file upload. This helps users upload high-resolution images, videos,and other large files safely. Additionally, it provides an option to pause and resume automatically based on server connection.

Multiple file upload

Select multiple files and upload them to a server at the same time. This is useful for uploading images to a gallery and for file sharing applications.

HTML5 file upload handles multiple files

JavaScript file upload with drag and drop files

Drag and drop

Upload multiple files in JavaScript by simply dragging them from the file explorer to the drop area (drop zone), which is a more user-friendly way to select and upload multiple files.

Upload images with previews

The HTML5/JavaScript File Upload control allows you to upload images and resize images, show an image preview or thumbnail, etc. before uploading them.

HTML5 image upload with its preview thumbnails

JavaScript file upload with customized buttons

Custom file upload button

The action buttons of the JavaScript File Upload control are completely customizable, including its file list, which helps create your own design for the file upload UI.

File types (file extensions)

Upload various file types and limit the file types from client-side, which is mandatory before uploading a file to the web application.

HTML5 file upload validates file type

JavaScript file upload restricts file size

File validation (filter)

Add validation to check file size limits with minimum and maximum ranges, number of files required, total size, and MIME type before uploading a file to a server.

Upload folder (directory)

The HTML5/JavaScript File Upload control accepts a folder (directory) as a file source for uploading all the files (including subfolders) of the selected folder.

JavaScript file upload process complete directory

HTML5 file upload process images from clipboard on paste

Paste image to upload

The HTML5/JavaScript File Upload control processes images from the clipboard, also. Simply copy and paste the images to be uploaded to a server.

Delete uploaded files

The JavaScript File Upload control provides a simple interface to delete the wrongly uploaded files from a server.

JavaScript file upload removes the uploaded files

Preload uploaded files

Users can configure previously uploaded files from the server. This is useful to view and remove files from the server.


Initiate an automatic upload to upload files immediately upon adding them to the upload queue.

JavaScript file upload with progress bar

Progress bar

The HTML5 multiple File Upload control displays a built-in progress bar (progress indicator) with the progress percentage during each file upload. The bar is completely customizable.


Templates are used to customize the default appearance of the uploader. The JavaScript File Upload control supports File List template and Custom template.


Users can set corresponding translation texts to the static strings used in the JavaScript File Upload control through the localization library.

JavaScript file upload displays localized static texts

JavaScript file upload with right-to-left mode

Right-to-left (RTL)

The JavaScript File Upload control supports right-to-left rendering, which improves the user experience and accessibility for those who use RTL languages.

Additional parameters

The HTML5 File Upload control allows you to pass additional parameters along with an upload request as an HTTP header or custom parameters.

Standard HTML forms

The JavaScript File Upload control has form support (synchronous mode) to work with native HTML forms.

JavaScript file upload covers web accessibility

Web accessibility

  • Fully supports WAI-ARIA accessibility, which allows the JavaScript File Upload control to be accessed by on-screen readers and assistive devices.

  • Follows the WAI-ARIA Best Practices for implementing keyboard interaction.

  • The UI element visuals, such as foreground color, background color, line spacing, text, and images, were designed based on the WCAG 2.0 standard.

JavaScript file upload works well in touch devices

Touch support

The JavaScript File Upload control provides the best user experience across phone, tablet, and desktop form factors.


The JavaScript file uploader control has several built-in themes such as material, bootstrap, fabric (Office 365), and high contrast. Users can customize any one of these built-in themes or create new themes to achieve their own desired look and feel either by simply overriding SASS variables or using our Theme Studio application.

Developer-friendly APIs

Developers can control the appearance and behaviors of the JavaScript File Upload, including its file list, using a rich set of APIs.

JavaScript File Upload Code Example

Easily get started with the JavaScript File Upload using a few simple lines of HTML and TS code example as demonstrated below. Also explore our JavaScript File Upload Example that shows you how to upload files in JavaScript.

<div class="control-section">
    <div class="control_wrapper">
        <!-- Initialize Uploader -->
        <input type="file" id="fileupload" name="UploadFiles">
import { enableRipple } from '@syncfusion/ej2-base';
import { Uploader, RemovingEventArgs } from '@syncfusion/ej2-inputs';
import { CheckBox, ChangeEventArgs } from '@syncfusion/ej2-buttons';
    let dropElement: HTMLElement = document.getElementsByClassName('control-fluid')[0] as HTMLElement;
    // Initialize the uploader component
    let uploadObj: Uploader = new Uploader({
        asyncSettings: {
            saveUrl: 'https://ej2.syncfusion.com/services/api/uploadbox/Save',
            removeUrl: 'https://ej2.syncfusion.com/services/api/uploadbox/Remove'
        removing: onFileRemove,
        dropArea: dropElement

    function onFileRemove(args: RemovingEventArgs) : void {
        args.postRawFile = false;

Other supported frameworks

The File Upload component is also available in Blazor, React, Angular, and Vue frameworks. Check out the different File Upload platforms from the links below,


Frequently Asked Questions

  • Extended version of the HTML5 file upload with a progress bar and flexible UI file list.
  • JavaScript multiple-file upload with form support, drag and drop, progress bar, folder upload, and more.
  • Large file upload with pause, resume, retry, and cancel options using chunking.
  • One of the best JavaScript File Upload in the market that offers feature-rich UI to interact with the software.
  • Completely customizable using templates.
  • Simple configuration and API.
  • Supports all modern browsers.
  • Mobile-touch friendly and responsive.
  • Expansive learning resources such as demos and documentation to learn quickly and get started with JavaScript File Upload.

We do not sell the JavaScript File Upload separately. It is only available for purchase as part of the Syncfusion JavaScript suite, which contains over 70 JavaScript components, including the File Upload. A single developer license for the Syncfusion Essential Studio for JavaScript suite costs $995.00 USD, including one year of support and updates. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

You can find our JavaScript File Upload demo here.

No, our 70 JavaScript components, including File Upload, are not sold individually, only as a single package. However, we have competitively priced the product so it only costs a little bit more than what some other vendors charge for their File Upload alone. We have also found that, in our experience, our customers usually start off using one of our products and then expand to several products quickly, so we felt it was best to offer all 70 JavaScript components for a flat fee of $995/developer. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

A good place to start would be our comprehensive getting started documentation.

Read independent,
authenticated reviews
on G2

Download Now Pricing

What do our customers say about us?

double quotes

We're using the file formats and Windows/JavaScript list controls a lot. They're fast, easy to use, and the documentation is good and contains examples. Tickets with questions or suggestions were answered within a day, so we're happy to use the Syncfusion libraries.
Daniel Persidok

Daniel Persidok

wpd onshore GmbH & Co. KG

double quotes

Using Syncfusion Angular and JavaScript controls makes front-end web development a piece of cake. Each component has many properties that can be configured as per your desire, methods that can be used to interact with the element, and a lot of events that trigger at different stages, which makes modifying your components according to the state of the application an easy task. Also, their support is amazing! They always offer a sample working project, which makes it very simple to solve your question about your code.
Carlos Rodriguez Garcia

Carlos Rodriguez Garcia


Transform your applications today by downloading our free evaluation version Download Free Trial


Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion is proud to hold the following industry awards.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile