I have been trying to implement various logics found on the internet. But the issue is that if I change the extension of any file it shows Okay. My code is as below:
'use strict';
$("#myfiles").on('change',function(){
var files = $('#myfiles').get(0).files;
if (files.length > 0) {
var file = files[0];
var fileReader = new FileReader();
fileReader.onloadend = function (e) {
var arr = (new Uint8Array(e.target.result)).subarray(0, 4);
var header = '';
for (var i = 0; i < arr.length; i++) {
header += arr[i].toString(16);
}
alert(header);
var type = 'unknown';
switch (header) {
case '89504e47':
type = 'image/png';
break;
case '47494638':
type = 'image/gif';
break;
case 'ffd8ffe0':
case 'ffd8ffe1':
case 'ffd8ffe2':
type = 'image/jpeg';
break;
case '25504446':
type = 'application/pdf';
break;
}
//if(type=='image/jpeg') { alert('Its JPEG/JPG'); } else { alert('Its Not'); }
//alert(type);
if (type!=='image/png' && type!=='image/gif' && type!=='image/jpeg' && type!=='application/pdf' ) {
alert("File Type Not Allowed");
} else {
$('#myfile_mydrive').fileupload({
downloadTemplateId: 'template-download-gallery',
uploadTemplateId: 'template-upload-gallery',
paramName: 'files[]',
url: 'mydrive-upload.php',
dataType: 'json',
autoUpload: true,
maxNumberOfFiles: 10,
acceptFileTypes: /(\.|\/)(pdf|doc|docx|xls|ppt|zip|gif|jpe?g|png)$/i
});
}
};
fileReader.readAsArrayBuffer(file);
}
});
So I implemented the code above. But it shows okay for once or twice then it uploads the file even after showing that file type is not supported.