IE8, IE7에서 업로드전 이미지파일 미리보기 HTML자스2009. 10. 7. 15:30
삽질한다음에 나중에 참고할라고 대충 퍼두는 것이다.
<head>
<script language=javascript>
function bodyimgprint(thisObj, imgcnt){
if(!/(\.jpg|\.jpeg|\.bmp)$/i.test(thisObj.value)) { alert("이미지(jpg,bmp) 형식의 파일을 선택하십시오"); return; }
var nowimg = 'kdimg'+imgcnt;
var preViewer = document.getElementById(nowimg);
var ua = window.navigator.userAgent;
if (ua.indexOf("MSIE 8") > -1) {
thisObj.select();
var selectionRange = document.selection.createRange();
var selectionText = selectionRange.text.toString();
// var obj_fr = document.getElementById("copyFrame").contentWindow.document.getElementById("previewPhoto");
// obj_fr.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + selectionText + "',sizingMethod=image)";
preViewer.src = './thum_blank.gif'; //id스타일이 뒤로 숨어버려서 투명한 gif 빈이미지로 교체
preViewer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + selectionText +"', sizingMethod=scale)";
thisObj.blur();
} else if (ua.indexOf("MSIE 7") > -1) {
thisObj.select();
var selectionRange = document.selection.createRange();
var selectionText = selectionRange.text.toString();
preViewer.src='file:///'+selectionText;
preViewer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + selectionText +"', sizingMethod='scale')";
} else {
preViewer.innerHTML = "";
var W = preViewer.offsetWidth;
var H = preViewer.offsetHeight;
var tmpImage = document.createElement("img");
preViewer.appendChild(tmpImage);
tmpImage.onerror = function () { return preViewer.innerHTML = ""; }
tmpImage.onload = function () {
if (this.width > W) {
this.height = this.height / (this.width / W);
this.width = W;
}
if (this.height > H) {
this.width = this.width / (this.height / H);
this.height = H;
}
}
if (ua.indexOf("Firefox/3") > -1) {
var picData = thisObj.files.item(0).getAsDataURL();
tmpImage.src = picData;
} else {
tmpImage.src = "file://" + thisObj.value;
}
}
}
</head>
<body>
<!-- 이미지파일 업로드 -->
<?
for($i=1; $i <= $cfg_howmany_up; $i++){ //9개까지 업로드가능하도록 수정 2005.10.25 처리에서 갯수제한은 없다.
$spanid = "kdaupimg" . $i;
$imgid = "kdimg" . $i;
$fileid = "upfile" . $i;
$cmtid = "comment" . $i;
if($i == 1){ $showok = "inline"; } else { $showok = "none"; }
?>
<span id="<? echo $spanid; ?>" style="display: <? echo $showok; ?>">
<table border=0 bordercolor=green cellpadding=2 cellspacing=0 width=100%>
<!-- <tr><td colspan=2 height=1 bgcolor=#CCCCCC background=./img/graypoint.gif></td></tr> -->
<tr>
<td width=100 align=right>사진첨부<? echo $i; ?></td>
<td valign=middle><INPUT type=file name='<? echo $fileid; ?>' size=57 onchange="bodyimgprint(this, <? echo $i; ?>)" class=inputtxt>
</td></tr>
<tr>
<td width=100 align=center valign=middle><img id="<?php echo $imgid; ?>" name='<? echo $imgid; ?>' src="./no.jpg" width=90 height=90 style="" class="preViewIMG"></td>
<td><TEXTAREA name="<? echo $cmtid; ?>" style="<? echo $textareastyle; ?>" onBlur='checkField(this)' onFocus='clearField(this)'>사진에 대한 설명을 입력해주세요.</TEXTAREA>
</td></tr>
<tr><td colspan=2 height=10></td></tr>
</table>
</span>
<?
}
?>
<!-- END이미지파일 업로드 -->
</td></tr>
</body>