js实现图片上传及预览---------------------->>兼容ie6-8 火狐以及谷歌

  

<head runat="server">
    <title>图片上传及预览(兼容ie6/7/8 firefox/chrome)</title>
    <script src="../Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div>
            <asp:FileUpload ID="fileAppImg" runat="server" Style="font-size: 13px;" onchange="previewImage(this,'preview','appImg')" /></div>
        <div id="preview" style="margin-top: 10px;">
            <img id="appImg" src="../SourceImg/ContentPage/AccountAuth/zjyl.jpg" alt="" style="margin-left: 1px;
                height: 214px; width: 160px;" />
        </div>
    </div>
    </form>
</body>
</html>
<%--图片上传预览--%>
<script type="text/javascript">
    //图片上传预览
    function previewImage(file, div, img) {
        MAXWIDTH = 160;
        MAXHEIGHT = 214;
        var div = document.getElementById(div);
        if (file.files && file.files[0]) {
            //验证图片大小
            var imgType = /\.[^\.]+$/.exec(file.value);
            if (imgType != ".jpg" && imgType != ".png") {
                alert("仅支持jpg和png两种格式的图片");
                file.value = "";
                $("#txtShowIcon").val("未选中文件");
                return;
            }
            div.innerHTML = "<img id='" + img + "'>";
            var img = document.getElementById(img);
            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 imgType = /\.[^\.]+$/.exec(file.value);
            if (imgType != ".jpg" && imgType != ".png") {
                alert("仅支持jpg和png两种格式的图片");
                return;
            }
            var filePath = file.value;
            //IE浏览器
            var sFilter = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
            file.select();
            var src = document.selection.createRange().text;
            div.innerHTML = '<img id="' + img + '">';
            var img = document.getElementById(img);
            //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 };
        param.width = maxWidth;
        param.height = maxHeight;
        param.left = 0;
        param.top = 0;
        return param;
    }
</script>

 

posted on 2014-11-13 17:25  DBtwoer  阅读(240)  评论(0编辑  收藏  举报