UI단에서의 JavaScript 파일 확정자 체크 및 파일 용량 체크
//이미지 용량체크
var isFileChecked = false;
var isImgFile = false;
var isEnableFileSize = false;
var maxSize = 1*1024*1024; //1M
function checkFileSize(uploadImgObj){
//
var enableUploadFileExt=new Array("bmp","jpg","jpeg","gif");
var uploadImgObjName = uploadImgObj.value;
var startPoint = 0;
var isImageFile = false;
//File 체크확인
isFileChecked = true;
if(uploadImgObj.value == ""){
return;
}
//이미지파일 확장자 체크
for(var i=uploadImgObjName.length-1; i>=0; i--) {
if(uploadImgObjName.charAt(i) == ".") {
startPoint = i;
break;
}
}
var uploadImgObjExt = uploadImgObjName.substring(startPoint+1,uploadImgObjName.length);
for(i=0; i<enableUploadFileExt.length; i++) {
if(uploadImgObjExt.toLowerCase() == enableUploadFileExt[i]){
isImageFile = true;
break;
}
}
if(!isImageFile){
alert("이미지 파일이 아닙니다. ");
uploadImgObj.value="";
isImgFile = false;
return;
}else{
isImgFile = true;
}
//파일용량 체크
var img = new Image();
img.dynsrc = uploadImgObj.value;
var filesize = img.fileSize;
//alert(filesize);
if(filesize > maxSize) {
alert("파일업로드 허용용량 "+maxSize/1024+"Kbyte를 초과되었습니다. ");
isEnableFileSize = false;
}else{
isEnableFileSize = true;
}
//
}
//업로드승인체크
function goFileUploadCheck(){
if(!isFileChecked){
alert("업로드할 파일을 지정해주셔야 합니다. ");
return;
}
if(!isImgFile){
alert("이미지 파일이 아닙니다. ");
return;
}
if(!isEnableFileSize){
alert("파일업로드 허용용량 "+maxSize/1024+"Kbyte를 초과되었습니다. ");
return;
}
}
<input id="txtUploadFile" style="width: 100%" type="file" size="40" name="NewFile" onchange="javascript:checkFileSize(this);" />
<input type="button" value="Upload" onclick="javascript:goFileUploadCheck();" />
추신 : 반드시 이것으로 만족하여 프로그래밍 하지 말고 반드시 서버단에서도 validation을 해주어야 한다!!!
그래도 발생하는 에러의 90%는 UI단에서 막을수 있다.