How to add a remove confirmation in EJ2 TypeScript File Upload

08 Sep 20264 minutes to read

You can customize the Uploader component by showing a confirmation dialog before removing files. This is done by intercepting the removing event, canceling the default removal, and displaying a confirmation dialog. Based on the user’s confirmation, the file is then removed programmatically. Here, the EJ2 Dialog (from the @syncfusion/ej2-popups package) is used as the confirmation dialog. Refer to the following example.

import { Uploader, FileInfo } from '@syncfusion/ej2-inputs';
import {createElement} from '@syncfusion/ej2-base';
import { Dialog } from '@syncfusion/ej2-popups';

let removeFile: FileInfo[];

let uploadObj: Uploader = new Uploader({
    asyncSettings: {
      saveUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Save',
      removeUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Remove'
    },
    removing: onremove

});
uploadObj.appendTo('#fileupload');

// Initialize Dialog component
let dialog: Dialog = new Dialog({
    content: 'Are you sure want to remove the file?',
    buttons: [{'click': () => { onClick() }, buttonModel: { content: 'OK', cssClass: 'e-flat', isPrimary: true }},
        {'click': () => {dialog.hide(); }, buttonModel: { content: 'Cancel', cssClass: 'e-flat'} }],
    width: '250px',
    visible: false,
    target: '#container'
});
dialog.appendTo('#dialog');

function onClick() {
  dialog.hide();
  uploadObj.remove(removeFile[0], false, true);
}

function onremove(args: any) {
  removeFile=[];
  args.cancel = true;
  removeFile.push(args.filesData);
  dialog.show();
}
<!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/34.2.2/ej2-base/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/34.2.2/ej2-inputs/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/34.2.2/ej2-popups/styles/material.css" rel="stylesheet" />
    <link href="https://cdn.syncfusion.com/ej2/34.2.2/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>
</head>
<body>
    <div id='loader'>Loading....</div>
    <div id='container'>
        <input type="file" id="fileupload" name="UploadFiles"/>
        <div id='dialog'></div>
    </div>
</body>
</html>
html,
body,    
#container {
    height: 100%;
    overflow: hidden;
    margin: auto 30px;
    padding: 20px 0;
}

#loader {
  color: #008cff;
  font-family: 'Helvetica Neue','calibiri';
  font-size: 14px;
  height: 40px;
  left: 45%;
  position: absolute;
  top: 45%;
  width: 30%;
}

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.