Media Log

파일 업로드시 자바스크립트로 체크하는 방법 하루 종일 삽질하면서 찾았다.
일단 기존에 image객체 생성해서 unload 해서 하는 방법은 익스플로러 7.0이상에서는 안된다.
6.0버전대는 안해봐서 모르겠다.

아래 방법을 사용하면 된다.
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile(document.getElementById("file").value);
var fileSize = f.size;
f = null;
fso = null
if(fileSize/1024 > 500)
{
  alert("이미지 파일 사이즈는 500kbyte를 넘을 수 없습니다.");
}

그런데 위의 방법대로 해도 안되는 경우가 생겼다.

오류멧세지가 "자동화서버 어쩌구 저쩌구다."
그럴때는
이걸 깔아준다.

그리고 인터넷 도구->옵션->보안->승인되지 않은스크립트를 확인이나 사용으로 해놓고 컴터 재부팅을 해주고 하면 성공.....

input type=file의 값을 없에려고 value="" 이렇게 해봐야 소용없다. 안된다.

document.getElementById("file").select();
document.selection.clear();

이렇게 해야 없어진다.

<input type="file" name="img" size=25 >
<input type="button" value="등록" onclick="_check()">
<script type="text/javascript">
function _check()
{
   if(document.getElementById("img"))
   {
     var str = document.getElementById("img").value;
     dot = str.lastIndexOf(".");
     ext = str.substring(dot).toLowerCase();
     if (ext != ".jpg" && ext != ".JPEG" && ext != ".gif")
     {
        alert("이미지는 업로드 할 수 없는 확장자입니다.");
        document.getElementById("img").select();
        document.selection.clear();
        return false;
      }
   }
</script>

위에 대로 만 하면 업로드 할려는 파일의 확장 자를 체크할 수 있다.

문자를 숫자로 -> parseInt("문자")

정규식을 이용한 자바스크립트 replace
replace(/a/gi,'b')
해당 문자열의 a문자를 b로 전부 바꾼다.