图片上传


html

<form id="upload_form" name="form1" method="post" target="post_frame" enctype="multipart/form-data">

                <iframe name='post_frame' id="post_frame" style="display: none;"></iframe>
                <div id="photoUrlpreview">
                    <img alt="无图片" src="" style="border: solid 1px #cccccc; width: 186px; height: 140px"
                        id="photoUrlImg" /></div>
                <div>
                    <input type="file" id="photoUrl" name="uploadFile" style="height:26px;" οnchange="previewImage('photoUrl' )" />
                    <input type="submit" value="开始上传" name="submit" οnclick="return showmsg('photoUrl');"  class="formSubmitButton"/>
                </div>
                </form>
                <div id="photoUrlmsg" style="color: red">

                    &nbsp;</div>

<form id="upload_form2" name="form2" method="post" target="post_frame" enctype="multipart/form-data">
                <iframe name='post_frame' id="post_frame2" style="display: none;"></iframe>
                <div id="logoUrlpreview" style="margin-bottom:10px;">
                    <img alt="无图片" src="" style="border: solid 1px #cccccc; width: 150px; height: 140px"
                        id="logoUrlImg" /></div>
                        
                <div>
                    <input type="file" id="logoUrl" name="uploadFile" οnchange="previewImage('logoUrl')" style="height:26px;"/>
                    <input type="submit" value="上传" name="submit" οnclick="return showmsg('logoUrl');" class="formSubmitButton"/>
                </div>
                </form>
                <div id="logoUrlmsg" style="color: red">
                    &nbsp;</div>


js

var FilePath = {
    getFilePath: function (fileBrowser) {
        if (navigator.userAgent.indexOf("MSIE") != -1) {
            fileBrowser.select();
            fileBrowser.blur();
            var fp = document.selection.createRange().text;
            return fp;
        }
        else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);
        else { alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")"); }
    },
    getFilePathWithFF: function (fileBrowser) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        } catch (e) {
            alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 signed.applets.codebase_principal_support" (忽略引号).');
            return;
        }
        var fileName = fileBrowser.value;
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
        try {
            // Back slashes for windows  
            file.initWithPath(fileName.replace(/\//g, "\\\\"));
        } catch (e) {
            if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
            alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
            return;
        }

        return file.path;
    }
};

var imgId = "";

var ffpath = "";
function perImg(o) {
    var filepath = ""; //文件路径
    var agent = window.navigator.userAgent;
    var isIE7 = agent.indexOf('MSIE 7.0') != -1;
    var isIE8 = agent.indexOf('MSIE 8.0') != -1;
    //        if (!o.value.match(/.jpg|.gif|.png|.bmp/i)) {
    //            alert('图片格式无效!');
    //            return;
    //        }
    if (agent.indexOf("Firefox") != -1) {
        //火狐浏览器判断
        ffpath = "file:///" + FilePath.getFilePath(document.getElementById(imgId))//显示预览图
        document.getElementById(imgId + 'Img').src = ffpath;
        //alert(document.getElementById(imgId + 'Img').src);
        var fileSize = GetFileSize(o); //获取文件大小
        //alert(fileSize);
        if (fileSize > 3 * 1024 * 1024) {
            alert("文件不能大于3M");
            return false;
        } else {
            // alert("文件符合大小");
            return true;
        }
    } else {//IE浏览器
        document.getElementById(imgId + 'Img').src = o.value; //显示预览图片
        var img = new Image(); //动态创建img
        // alert(o.value)
        img.src = o.value;
        img.style.display = "none";
        if (img.readyState == "complete") {//已经load完毕,直接打印文件大小
            //alert(img.fileSize); //ie获取文件大小
            if (img.fileSize > 3 * 1024 * 1024) {
                alert("文件不能大于3M");
                return false;
            } else {
                // alert("文件符合大小");
                return true;
            }
        } else {
             
           return img.onreadystatechange = function () {
                if (img.readyState == 'complete') {//当图片load完毕
                    // alert(img.fileSize); //ie获取文件大小
                    if (img.fileSize > 3 * 1024 * 1024) {
                        alert("文件不能大于3M");
                        return false;
                    } else {
                        //alert("文件符合大小");
                        return true;
                    }

                }

               
            }

            
        }
    }
}
//FF判断文件大小函数
function GetFileSize(fileObj) {
    var image = new Image();
    image.dynsrc = ffpath;
    var fileSize = image.fileSize || 0;
    if (fileSize == 0) {
        fileSize = fileObj.files[0].size;
    }
    return fileSize;
}

function showImage() {
    var agent = window.navigator.userAgent;
    if (agent.indexOf("MSIE") != -1) {

        document.getElementById("imgView").src = document.getElementById("imageUrl").value;
    } else {
        //            var src = FilePath.getFilePath(document.getElementById("imageUrl"));
        //            src = src.replace(/\\/g, "/")

        document.getElementById("imgView").src = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"));

    }


}
function previewImage(id) {

    var file = document.getElementById(id);
    var MAXWIDTH = 128;
    var MAXHEIGHT = 128;
    var div = document.getElementById(id + 'preview');
    if (file.files && file.files[0]) {
        div.innerHTML = '<img id="' + id + 'Img" >';
        var img = document.getElementById(id + 'Img');
        img.onload = function () {

            img.width = 128;
            img.height = 128;

        }
        var reader = new FileReader();
        reader.onload = function (evt) { img.src = evt.target.result; }
        reader.readAsDataURL(file.files[0]);
    }
    else {
        document.getElementById(id + 'Img').src = document.getElementById(id).value;
    }
}
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;
}

function validateImg(id) {

    var x = document.getElementById(id);


    if (!x || !x.value) {

        return false;

    }

    var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;

    if (patn.test(x.value)) {

        return true;

    } else {

        alert("您选择的似乎不是图像文件。");

        return false;

    }

}
function preview() {

    var x = document.getElementById("photoUrl");

    if (!validateImg()) {

        return;

    }


}
function showmsg(id) {
    imgId = id;
    if (!validateImg(id)) {

        return false;

    }

    var obj = document.getElementById(id);

    if (!perImg(obj)) {

        return false;

    }

 
    document.getElementById(id + "msg").innerHTML = '文件上传中...';


    return true;

}

function getUrlCallBack(url) {

 
    document.getElementById(imgId + "msg").innerHTML = '文件上传成功';

    window.location.href = window.location.href;
}


<div class="personalHead" id="preview">
<img id="imgView"  alt="无图片" style="width: 128px; height: 128px;"/> </div>

    <div id="icon" class="f_l" style="padding: 40px 0pt 0pt 77px;">
<div class="iptBtn2"><input οnclick="image_change()" type="button" value="更换头像"></div>
<div id="msg" style="color:red">
    &nbsp;</div>
</div>
<div id="m_icon" style="margin-left: 0px;display:none;">
<form id="upload_form" name="form1" method="post" target="post_frame" enctype="multipart/form-data">
<iframe name='post_frame' id="post_frame" style="display: none;">
</iframe>
<input id="imageUrl" type="file" name="uploadFile" style="height:25px;line-height:25px" οnchange="previewImage(this)"/> <br />
<div class="iptBtn2" style="margin-top:10px;">
<input type="submit" value="开始上传" name="submit" οnclick="return showmsg();" /></div><div class="iptBtn2" style="margin-left:10px"><input οnclick="myInfocancel()" type="button" value="取消"  style="color:#757575"/></div>
</form>



$(document).ready(function () {

    
        $("#upload_form").attr("action", "/" + domainName + "/Space/" + userName + "/User/Upload");
 
    })
    function validateImg() {
       
        var x = document.getElementById("imageUrl");

        if (!x || !x.value) {

            return false;

        }

        var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;

        if (patn.test(x.value)) {

            return true;

        } else {

            alert("您选择的似乎不是图像文件。");

            return false;

        }

    }
    function preview() {
        
        var x = document.getElementById("imageUrl");

        if (!validateImg()) {

            return;

        }


    }
    function showmsg() {


        if (!validateImg()) {

            return false;

        }

        var obj = document.getElementById('imageUrl');

        if (!perImg(obj)) {

            return false;

        }

         

        


        document.getElementById("msg").innerHTML = '文件上传中...';

        return true;

    }

    function getUrlCallBack(url) {

     

//        document.getElementById("imgView").src = url;
//        document.getElementById("u_images").src = url;

        window.location.href = window.location.href;
         
         
        document.getElementById("msg").innerHTML = '文件上传成功';

        myInfocancel()

    }

    function image_change() {


        $("#icon").hide();


        $("#m_icon").show();
        document.getElementById("msg").innerHTML = '';
    }
    function myInfocancel() {

        $("#icon").show();


        $("#m_icon").hide();



    }

    var ffpath = "";
    var FilePath = {
        getFilePath: function (fileBrowser) {
            if (navigator.userAgent.indexOf("MSIE") != -1) {
                fileBrowser.select();
                fileBrowser.blur();
                var fp = document.selection.createRange().text;
                return fp;
            }
            else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);
            else { alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")"); }
        },
        getFilePathWithFF: function (fileBrowser) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            } catch (e) {
                alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 signed.applets.codebase_principal_support" (忽略引号).');
                return;
            }
            var fileName = fileBrowser.value;
            var file = Components.classes["@@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
            try {
                // Back slashes for windows  
                file.initWithPath(fileName.replace(/\//g, "\\\\"));
            } catch (e) {
                if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
                alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
                return;
            }

            return file.path;
        }
    }


    function perImg(o) {
        var filepath = ""; //文件路径
        var agent = window.navigator.userAgent;
        var isIE7 = agent.indexOf('MSIE 7.0') != -1;
        var isIE8 = agent.indexOf('MSIE 8.0') != -1;
//        if (!o.value.match(/.jpg|.gif|.png|.bmp/i)) {
//            alert('图片格式无效!');
//            return;
//        }
        if (agent.indexOf("Firefox") != -1) {
            //火狐浏览器判断
            ffpath = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"))//显示预览图
            document.getElementById("imgView").src = ffpath;
           // alert(document.getElementById("imgView").src);
            var fileSize = GetFileSize(o); //获取文件大小
            //alert(fileSize);
            if (fileSize >3*1024 * 1024) {
                alert("文件不能大于3M");
                return false;
            } else {
               // alert("文件符合大小");
                return true;
            }
        } else {//IE浏览器
            document.getElementById("imgView").src = o.value; //显示预览图片
            var img = new Image(); //动态创建img
            //alert(o.value)
            img.src = o.value;
            img.style.display = "none";
            if (img.readyState == "complete") {//已经load完毕,直接打印文件大小
               // alert(img.fileSize); //ie获取文件大小
                if (img.fileSize > 3 * 1024 * 1024) {
                    alert("文件不能大于3M");
                    return false;
                } else {
                   // alert("文件符合大小");
                    return true;
                }
            } else {
              return  img.onreadystatechange = function () {
                    if (img.readyState == 'complete') {//当图片load完毕
                        //alert(img.fileSize); //ie获取文件大小
                        if (img.fileSize > 3 * 1024 * 1024) {
                            alert("文件不能大于3M");
                            return false;
                        } else {
                            //alert("文件符合大小");
                            return true;
                        }

                    }
                }
            }
        }
    }
    //FF判断文件大小函数
    function GetFileSize(fileObj) {
        var image = new Image();
        image.dynsrc = ffpath;
        var fileSize = image.fileSize || 0;
        if (fileSize == 0) {
            fileSize = fileObj.files[0].size;
        }
        return fileSize;
    }

    function showImage() {
        var agent = window.navigator.userAgent;
        if (agent.indexOf("MSIE") != -1) {

            document.getElementById("imgView").src = document.getElementById("imageUrl").value;
        }else {
//            var src = FilePath.getFilePath(document.getElementById("imageUrl"));
//            src = src.replace(/\\/g, "/")

            document.getElementById("imgView").src = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"));
             
        }

       
    }

    function previewImage(file) {
        var MAXWIDTH = 128;
        var MAXHEIGHT = 128;
        var docObj = document.getElementById("imageUrl")
        var div = document.getElementById('preview');
        var imgObjPreview = document.getElementById("imgView");
        if (file.files && file.files[0]) {
            div.innerHTML = '<img id=imgView>';
            var img = document.getElementById('imgView');
            img.onload = function () {
                
                img.width = 128;
                img.height =128;
               
            }
            var reader = new FileReader();
            reader.onload = function (evt) { img.src = evt.target.result; }
            reader.readAsDataURL(file.files[0]);
        }
        else {
            docObj.select();
            var imgSrc = document.selection.createRange().text;
            var localImagId = document.getElementById("preview");
            //必须设置初始大小
            localImagId.style.width = "128px";
            localImagId.style.height = "128px";
            //图片异常的捕捉,防止用户修改后缀来伪造图片
            try {
                localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
            } catch (e) {
                alert("您上传的图片格式不正确,请重新选择!");
                return false;
            }
            imgObjPreview.style.display = 'none';
            document.selection.empty();
        }
    }
    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;
    }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值