Achieve file upload programmatically in EJ2 TypeScript Uploader control

15 May 20234 minutes to read

You can upload a file programmatically using the upload method. Get the selected files data from the getFilesData public method in uploader.

The upload method behaves differently based on its arguments.

  • If this method receives any files as arguments, those files only start to upload.
  • If it has no argument, all the selected files start to upload.
import { Uploader } from '@syncfusion/ej2-inputs';

//Initialize the control by preload files
let uploadObj: Uploader = new Uploader({
    autoUpload: false,
    asyncSettings: {
        saveUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Save',
        removeUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Remove'
    }
});
uploadObj.appendTo('#fileupload');

document.getElementById('first').onclick = (args) => {
    uploadObj.upload(uploadObj.getFilesData()[0]);
};

document.getElementById('full').onclick = (args) => {
    uploadObj.upload(uploadObj.getFilesData());
};
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Essential JS 2 Uploader</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="Essential JS 2 Uploader Component" />
    <meta name="author" content="Syncfusion" />
    <link href="index.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-base/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-inputs/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-popups/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-buttons/styles/material.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
    <script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
    <div id='loader'>Loading....</div>
        <div id='container'>
            <div class="control_wrapper">
                <!-- Initialize Uploader -->
                <input type="file" name="UploadFiles" id="fileupload">
            </div>
            <span style=' padding-left: 40px; margin-top: 30px'>
              <button id='first' class='e-btn e-control'>Upload first file</button>
            </span>
            <span style=' padding-left: 40px; margin-top: 30px'>
              <button id='full' class='e-btn e-control'>Upload all files</button>
            </span>
        </div>
    </div>
</body>
</html>
#container {
  visibility: hidden;
}

#loader {
  color: #008cff;
  font-family: 'Helvetica Neue','calibiri';
  font-size: 14px;
  height: 40px;
  left: 45%;
  position: absolute;
  top: 45%;
  width: 30%;
}
.control_wrapper {
  max-width: 500px;
  margin: auto;
}
.e-upload {
  width: 100%;
  position: relative;
  margin-top: 15px;
  margin-bottom: 15px;
}
.e-upload-actions {
display: none;
}
.e-btn {
  text-transform: none;
}

You can also explore JavaScript File Upload feature tour page for its groundbreaking features. You can also explore our JavaScript File Upload example to understand how to browse the files which you want to upload to the server.