방법1) 브라우저 체크하여 용량 체크하기 - IE에서는 정상동작 하지 않을 수 있음.
- //아래 4개의 함수를 스크립트 영역에 선언
- //$('#upFile').val(); 의 아이디는 자신이 지정한 id로 변경한다.
- function checkIEBrowser() {
- var agent = navigator.userAgent.toLowerCase();
- if ((navigator.appName == 'Netscape' && navigator.userAgent
- .search('Trident') != -1)
- || (agent.indexOf("msie") != -1)) {
- return true;
- } else {
- return false;
- }
- };//checkIEBrowser
- function validateFileSizeIE(limit) {
- var myFSO = new ActiveXObject("Scripting.FileSystemObject");
- var filePath = $('#upFile').val();
- if (filePath == '') {
- alert('파일을 등록하세요.');
- return;
- }
- var thisFile = myFSO.getFile(filePath);
- var size = thisFile.size;
- if (size > limit * 1024 * 1024) { //1mb
- alert('파일의 용량이 너무 큽니다. 다시 확인해주세요');
- $('#upFile').val('');
- }
- };//validateFileSizeIE
- function validateFileSizeOther(limit) {
- if ($('#upFile').val() == '') {
- alert('파일을 등록하세요.');
- return;
- }
- var size = $('#upFile')[0].files[0].size;
- if (size > limit * 1024 * 1024) { //1mb
- alert('파일의 용량이 너무 큽니다. 다시 확인해주세요');
- $('#upFile').val('');
- }
- };//validateFileSizeOther
- //limitFileSize 변수에 제한할 값을 넣고 마지막에 이 함수만 호출해주면 하나의 모듈로 호출가능
- function validationFileSize(limitFileSize){
- if(checkIEBrowser()){
- validateFileSizeIE(limitFileSize);
- return;
- }else{
- validateFileSizeOther(limitFileSize);
- }
- };//validationFileSize
방법2) 위 방법에서 IE는 정상작동 하지 않을수 있어서 내가 별도로 만든 함수 - 굉장히 잘돌아간다.
- //호출할땐 저 함수에 input파일에서 onchange될때 파일사이즈를 넣어서 호출한다. ex) fileSizeCheck(parseInt(this.files[0].size))
- //업로드 파일 용량체크 루틴
- function fileSizeCheck(fileSize){
- var bytes = parseInt(fileSize);
- var s = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
- var e = Math.floor(Math.log(bytes)/Math.log(1024));
- if(e == "-Infinity"){
- //0kb 파일일때
- return "0 "+s[2];
- }else{
- //0kb가 아닐때
- var intVal = (bytes/Math.pow(1024, Math.floor(e))).toFixed(2);
- if((s[e] == s[2]) && (intVal > 10.00)){
- alert(' 10MByte 미만의 파일만 업로드 가능합니다 ');
- }
- return (bytes/Math.pow(1024, Math.floor(e))).toFixed(2)+s[e];
- }
- }
'IT' 카테고리의 다른 글
mssql에서 mysql로 마이그레이션을 위해 linked server(연결된서버) 설정하기 (0) | 2018.10.27 |
---|---|
MSSQL에서 구문에 쌍따옴표 쓰기 (0) | 2018.10.27 |
자바스크립트로 SHA-512 암호화 하기 (0) | 2018.10.27 |
classic asp sha512 암호화 (0) | 2018.10.27 |
[jQuery] map()을 활용한 반복 처리 방법 (0) | 2018.10.24 |