图片上传预览js(支持IE6+,chrome,FF)

   <script type="text/javascript">
         function fileclick() {
             document.getElementById("<%=doc.ClientID %>").click();
          }
     </script>

<div id="preview">

                                     <img id="imghead" width="71" height="99" border="0" src=''/>
                                 </div>
                                 <input type="file" name="doc" id="doc" runat="server" onchange="previewImage(this);"
                                 style="position:absolute;filter:alpha(opacity=0);z-index:-99"/>
                                 <input runat="server" type="button" value="选择文件" onclick='fileclick()' style="width:90px"/>

<script type="text/javascript">
         function previewImage(file) {
             var MAXWIDTH = 100;
             var MAXHEIGHT = 100;
             var div = document.getElementById('preview');
             if (file.files && file.files[0]) {
                 div.innerHTML = '<img id=imghead>';
                 var img = document.getElementById('imghead');
                 img.onload = function() {
                     var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
                     img.width = rect.width;
                     img.height = rect.height;
 //                     img.style.marginLeft = rect.left + 'px';
 //                    img.style.marginTop = rect.top + 'px';
                 }
                 var reader = new FileReader();
                 reader.onload = function(evt) { img.src = evt.target.result; }
                 reader.readAsDataURL(file.files[0]);
             }
             else {
                 var sFilter = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
                 file.select();
                 div.focus();
                 var src = document.selection.createRange().text;
                 div.innerHTML = '<img id=imghead width="71px" height="99px">';
                 var img = document.getElementById('imghead');
                 img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
                 var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
                 status = ('rect:' + rect.top + ',' + rect.left + ',' + rect.width + ',' + rect.height);
                 div.innerHTML = "<div id=divhead style='width:" + rect.width + "px;height:" + rect.height + "px;margin-top:" + rect.top + "px;margin-left:" + rect.left + "px;" + sFilter + src + "\"'></div>";
             }
         }
         function clacImgZoomParam(maxWidth, maxHeight, width, height) {
             var param = { top: 0, left: 0, width: width, height: height };
             if (width > maxWidth || height > maxHeight) {
                 rateWidth = width / maxWidth;
                 rateHeight = height / maxHeight;
 
                 if (rateWidth > rateHeight) {
                     param.width = maxWidth;
                     param.height = Math.round(height / rateWidth);
                 } else {
                     param.width = Math.round(width / rateHeight);
                     param.height = maxHeight;
                 }
             }
 
             //param.left = Math.round((maxWidth - param.width) / 2);
 //            param.top = Math.round((maxHeight - param.height) / 2);
             return param;
         }
 </script>

posted @ 2012-10-12 14:31  qishidz  阅读(114)  评论(0编辑  收藏  举报