이미지 업로드 시, 업로드되는 이미지의 크기를 제한하지 않으면 결과가 매우 심각해집니다. 그렇다면 어려운 문제를 어떻게 해결할 수 있을까요? 두 가지 방법이 있습니다:
: 즉, AJAX POST를 백그라운드에 제출하고 이미지를 서버에 업로드한 다음 이미지 크기를 얻어서 처리합니다.
: 즉, Javascript를 사용하여 이미지 크기를 가져옵니다.
분명히 첫 번째 방법은 매우 나쁩니다. 파일을 서버에 먼저 업로드해야 하기 때문에 파일이 큰 경우 인터넷 속도가 그리 빠르지 않고, 오랜 시간 기다려야 하기 때문에 증상은 치료되지만 근본 원인은 해결되지 않습니다.
여기에서는 IE와 FireFox의 다양한 접근 방식만 소개하겠습니다.
IE6에서는 Img 객체의 fileSize 속성을 통해 파일 크기를 얻을 수 있지만 이 fileSize 속성의 올바른 값은 onreadystatechange 완료 시 설정됩니다. 이벤트, 즉
onreadystatechange="Javascript:sizeCheck(this);">
function sizeCheck(img) {
if(img.readyState == "완료") {
alert(img.fileSize ; 경로, 이미지 이름만 얻을 수 있습니다. 하지만 브라우저에서는 nsIDOMFile과 같은 인터페이스를 제공하므로 getAsDataURL()을 통해 처리된 경로를 얻어야 하지만 이 경로는 이미지 src 표시에 영향을 주지 않습니다.
nsIDOMFile 인터페이스:
DOMString getAsBinary();
DOMString getAsDataURL();
코드는 다음과 같습니다.
img.src = obj.files[0]. getAsDataUrl() ;
코드는 다음과 같습니다.