How to achieve invisible upload in EJ2 TypeScript File Upload
8 Sep 20265 minutes to read
Invisible upload refers to uploading files programmatically without displaying the default Uploader UI. You can achieve this by handling the selected event in the Uploader component to intercept the selected files and process them without rendering the default file list. Refer to the following example to achieve this.
import { Uploader, SelectedEventArgs } from '@syncfusion/ej2-inputs';
import { createElement } from '@syncfusion/ej2-base';
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'
},
selected : onupload,
locale: 'en-US',
allowedExtensions: '.png, .jpg, .jpeg'
});
uploadObj.appendTo('#fileupload')
function onupload(args: SelectedEventArgs){
for(let i = 0; i< args.filesData.length ; i++){
let liparentDiv = createElement('div', { className: 'image-list'});
let liImage = createElement('img', { className: 'image'});
liparentDiv.appendChild(liImage);
readURL(liImage, args.filesData[i]);
document.getElementById('preview').appendChild(liparentDiv);
}
args.cancel=true;
}
function readURL(liImage: HTMLElement, file: any) {
let imgPreview: HTMLImageElement = liImage as HTMLImageElement;
let imageFile: File = file.rawFile;
let reader: FileReader = new FileReader();
reader.addEventListener( 'load', () => {
imgPreview.src = reader.result;
}, false);
if (imageFile) {
reader.readAsDataURL(imageFile);
}
};<!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='preview'></div>
<div id='container'>
<input type="file" id="fileupload" name="UploadFiles"/>
</div>
</body>
</html>#container {
visibility: hidden;
margin: 10px;
}
#loader {
color: #008cff;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
#preview {
border: 2px dashed #ddd;
padding: 15px;
}
.image-list {
width: 134px;
height: 117px;
margin-right: 4px;
border: 1px solid lightgrey;
display: inline-block;
}
.image {
width: 134px;
height: 117px;
margin-right: 4px;
display: inline-block;
}
.e-control {
border : 0;
}
.e-control ul {
border: 1px solid #ddd;
}
.e-control .e-file-select,
.e-control .e-file-drop {
display: 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.