使用jquery+ajax实现图片的上传与预览

效果预览:

布局思路:

(1)外层一个div,用来放上传图片的背景图和展示图

(2)内层两个input,一个text类型加属性hidden,用来将上传图片后得到的路径进行赋值给value来提交。一个file类型用来实现文件上传。

HTML:

<div style="width:130px;height:70px;background:url(../images/1.png) center center / cover no-repeat;">
    <input type="text" id="submitImg"  name="content_img1" value="" hidden>
    <input type="file" id="uploadImg"  name="" onchange="preview(this,'srcBgName')" value="">
</div>

JS:

$("#uploadImg").change(function(){
    var formData = new FormData();
    formData.append("image",$("#uploadImg")[0].files[0]);
    //调用上传图片函数
    uploadImages(formData,"#submitImg");
});
//上传图片函数
function uploadImages(jsonData,ele){
    var uid = xxx;
    var token = yyy;
    jsonData.append("uid",uid);
    jsonData.append("token",token);
    $.ajax({
        url: url,
        type: 'post',
        data: jsonData,
        processData: false,
        contentType: false,
        success: function (data) {
            //上传成功后,将返回的图片路径赋值给隐藏的input的value,从而进行提交
            $(ele).val(data.data);
            //上传成功后给用户提示
            layer.alert(data.api_msg);
        },
        error: function (data) {
            console.info(data);
        }
    });
}
//图片的展示预览
function preview(imageFile,srcBgName) {
    //拼接没上传图片前的背景图路径
    var srcbgUrl = "../images/" + srcBgName + ".png";
    //图片上传成功后返回的图片路径
    if(file.files && file.files[0]) {
        var reader = new FileReader();
        reader.onload = function (e) {
            $(imageFile).parent().css({
                "background": "url(" + e.target.result + ") center center no-repeat",
                "background-size": "cover"
            });
        }
        reader.readAsDataURL(file.files[0]);
    }else {
        //改选图片时没上传图片时恢复原背景图
        $(imageFile).parent().css({
            "background": "url(" + srcbgUrl + ") center center no-repeat",
            "background-size": "cover"
        });
    }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值