原生JS图片异步上传

<div class="cont">
    <ul class="clearfix">
        <form  enctype="multipart/form-data">
            <li>
                <label>选择图片:</label>
                <input class="file" type="file" id="mBgImg" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
                <span>640*320</span>
            </li>
        </form>
    </ul>
    <div class="btn_input">
        <input type="button" class="btn cancel" value="取消">
        <input type="button" class="btn confirm" id="mBgBtn" value="确定">
    </div>
</div>

1、将需要上传的图片用<from>处理,代码如上

2、js代码,如下

$("#mBgBtn").click(function () {

    //判断是否有选择上传文件
    var mBgImg = $("#mBgImg").val();
    if (mBgImg == "") { alert("请选择上传图片!"); return; } 
    //判断上传文件的后缀名  
    var strExtension = mBgImg.substr(mBgImg.lastIndexOf('.') + 1); 
    if ( strExtension != 'gif' && strExtension != 'jpeg' && strExtension != 'jpg' && strExtension != 'png' && strExtension != 'svg' ) {alert("请选择合法图片上传!"); return; } 
    //原生JS上传开始  
    var xhr; 
    function createXMLHttpRequest(){ 
        if(window.ActiveXObject){ 
            xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
        }else if(window.XMLHttpRequest){ 
            xhr = new XMLHttpRequest(); 
        } 
    } 

    var fileObj = document.getElementById("mBgImg").files[0]; 
    var FileController = 'index.php?m=admin_area_mBgImgChg'; 
    var form = new FormData(); form.append("mBgImg", fileObj); 
    createXMLHttpRequest(); 
    xhr.onreadystatechange = handleStateChange; 
    xhr.open("post", FileController, true); 
    xhr.send(form); 

    function handleStateChange(){ 
        if(xhr.readyState == 4){ 
            if (xhr.status == 200 || xhr.status == 0){ 
                var result = xhr.responseText; 
                var ref = result.split('|'); 
                if(ref[0] == -2){ 
                    alert(ref[1]); 
                    $("#mBgBtn").parents(".popup").hide(); 
                    return; 
                }else { 
                    alert(ref[1]); 
                    return; 
                } 
            } 
        } 
    } //原生JS上传结束
});

转载于:https://my.oschina.net/u/3268486/blog/1486735

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值