js图片上传(转为base64并传到后台保存到数据库)

本文介绍了一种前端实现的图片上传与实时预览的方法,使用HTML5的File API和FileReader API,能够限制上传图片的大小并在上传前进行预览。文章详细展示了如何使用JavaScript监听文件输入变化,读取图片并转换为Base64格式,同时检查图片大小是否符合要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html:
    <div>
            <img width="10%" src="" style="display: block" id="imgWait" />
            <input type="file" id="file1" accept="image/*"  value="点击更换头像" style="width:11%" /><%--<asp:FileUpload ID="FileUpload1" runat="server" />--%>   <%--accept="image/*"。 image/gif, image/jpeg,image/png--%>
        </div>

js:
    var file;
            $("#file1").bind('input propertychange', function () {   //监听输入内容改变
                file = document.getElementById("file1").files[0];   //file.type  获取图片类型
                ////预览
                //var URL = window.URL || window.webkitURL;
                //// 通过 file 生成目标 url
                //var imgURL = URL.createObjectURL(file);
                //// 用这个 URL 产生一个 <img> 将其显示出来
                //$('#imgWait').attr('src', imgURL);
                var reader = new FileReader();
                var AllowImgFileSize = 2100000; //上传图片最大值(单位字节)( 2 M = 2097152 B )超过2M上传失败
                var imgUrlBase64;
                if (file) {
                    //将文件以Data URL形式读入页面  
                    imgUrlBase64 = reader.readAsDataURL(file);
                    reader.onload = function (e) {
                        //var ImgFileSize = reader.result.substring(reader.result.indexOf(",") + 1).length;//截取base64码部分(可选可不选,需要与后台沟通)
                        if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
                            alert('上传失败,请上传不大于2M的图片!');
                            return;
                        } else {
                            //执行上传操作
                            var info = DataInfoPage_PersonalInfomationShow.save(reader.result).value;
                            if (info.flag != 1)
                            {
                                alert(info.result);
                            } else
                            {
                                $('#imgWait').attr('src', info.result);
                            }
                        }
                    }
                }

            });

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值