가제 : 거짓말 같은 file value null처리
서론 : 웹브라우저는 업로드하는 파일에 관하여 보안상 get value는 가능하되 set value는 다루지 못하게 되어 있다.
이리하여 각 사이트 마다 파일 업로드 용량 체크는 가능하되 업로드 용량이 벗어나면 안되는 관계로
value값을 체크하여 용량이 넘는다 하면 즉각적으로 input type="file" 이 담고 있는 value를 리셋해주는 방법을 다루어 보겠다.
직접 value를 삭제하는 방법도 있지만.. 그 method는 clear() 이지만..
이렇게 되면 javascript 에서 submit() 처리를 할때 엑세스 거부를 당하게 된다.
물론 clear를 하여 null이 되긴 하지만 경험상 1번 엑세스거부당하고 2번째 클릭시에는 정상작동은 한다.
하지만, 일반사용자를 상대로 하여서는 이러한 방법이 좋지 않다는것을 알고 있고
사용자의 직관적 사용을 위하여 아래와 같이 수정하였다 ^-^ 히히
<script>
//용량체크
var maxSize = 5*1024*1024; //5M
function checkFileSize(FormObj){
var img = new Image();
img.dynsrc = FormObj.attachFile01.value;
var filesize = img.fileSize;
//alert(filesize);
if(filesize > maxSize) {
alert("파일업로드 허용용량 "+maxSize/1024+"Kbyte를 초과되었습니다. ");
attacheFileValueDel();
return;
}
}
//지정한 파일input 리셋
function attacheFileValueDel(){
document.getElementById("fileDiv").innerHTML = "<input type='file' name='attachFile01' size='50' onchange='checkFileSize(this.form);'>";
}
</script>
<body>
....
<div id="fileDiv">
"<input type='file' name='attachFile01' size='50' onchange='checkFileSize(this.form);'>
</div>
....
</body>
위와 같이 표현함으로써.. file에 관한 value는 null로 -_- 표현 될 수 있었다..
정상적인 방법을 사용하고 싶었지만.. 그러한 방법은 보안 이라는 이름으로.. 막힐예정이거나 사용이 불가능하다.
'프로그래밍 > html & jsp' 카테고리의 다른 글
cursor 옵션 (0) | 2009.06.29 |
---|---|
마우스 오른쪽 클릭 금지 (0) | 2009.06.11 |
자바스크립트로 파일용량 체크 (0) | 2009.06.10 |
event.keycode 표 (0) | 2009.06.10 |
파일업로드 찾아보기 버튼을 이미지로 만들기 (0) | 2009.06.10 |