H5页面基于layui的图片上传

效果图:
在这里插入图片描述
html:

 <div class="m_ask_figureCon2  ovH">

            <p class="zm_p">就医证明(0/8</p>
            <div id="uploadPics">

            </div>

            <span class="pics upload" id="file_block">
                <span>
                    <button class="layui-btn demoMore" id="doctor_prove_upload">就医证明</button>
                </span>
            </span>

        </div>

js:

layui.use('upload', function(){
        var $ = layui.jquery,
            upload = layui.upload;
        
        var img_arr = [];
        var img_num = 0;

        upload.render({
            elem: '#doctor_prove_upload'
            ,url: '<?= Url::to(['file/upload']) ?>'
            ,acceptMime:'image/*'
            ,before: function(obj){
                obj.preview(function (index, file, result) {
                    //当前上传照片数量
                    var current_img_index = ++img_num;
                    var img_html =
                        '<span class="pics" id="pics-'+current_img_index+'" img-index="'+current_img_index+'">'+
                        '<span id="closed" class="closed"></span>'+
                        '<img src="'+ result +'" alt="'+ file.name +'"  style="width: 100%">'+
                        '</span>';
                    if (img_num <= 8) {
                        $('.zm_p').text('就医证明(' + current_img_index +'/8)')
                        $('#uploadPics').append(img_html);
                    } else {
                        $(".seekpop").show().delay(2000).hide(0).children("p").html('就医证明图片不能超过8张');
                    }

                })
            }
            ,done: function(res){ //上传后的回调
                if (res.code == 200){
                    img_arr.push(res.data.file_url);
                    var imgs_str = img_arr.join();
                    $("#doctor_proves").val(imgs_str);
                }else{
                    $(".seekpop").show().delay(2000).hide(0).children("p").html(res.msg);
                }
            }
        });

        //删除上传的图片
        $('body').on('click' , '.closed' , function() {
            var _this = $(this);
            //删除当前点击的图片
            _this.parent().remove();
            //图片数组索引
            var img_index = _this.parent().attr('img-index');
            //删除指定索引图片数组
            img_arr.splice(img_index - 1, 1);
            //更新就医证明数值
            $('.zm_p').text('就医证明(' + --img_num +'/8)')
        });

    });

php:
最后返回图片cdn地址即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
h5页面中选择上传相册图片通常分为以下几个步骤: 1. 页面展示:打开页面时,需要先展示用户的相册图片列表。可以使用h5的File API,通过JavaScript读取用户的相册图片,并将其展示在页面上。可以使用HTML的img元素来展示图片。 2. 选择图片:在页面中添加一个按钮或者上传区域,用于触发选择相册图片的动作。可以使用HTML的input元素,并设置其type为file。当用户点击按钮或者拖拽图片到上传区域时,会触发浏览器系统的文件选择窗口显示。 3. 监听文件选择:使用JavaScript监听文件选择窗口的change事件,在用户选择图片后,获取到选择的图片文件。可以通过获取input元素的files属性来获取到选择的文件列表。 4. 预览图片:在用户选择图片后,可以通过读取文件的Blob对象,使用URL.createObjectURL方法来生成一个可预览的图片地址。将预览地址赋值给img元素的src属性,即可在页面中实时预览用户选择的图片。 5. 上传图片:用户选择图片后,可以点击上传按钮将文件提交到服务器进行处理。可以使用XMLHttpRequest对象发送异步请求,将图片文件作为请求的数据发送到服务器上。服务器端可以根据需求进行相应的处理,如保存图片到服务器,生成图片地址等。 6. 错误处理:在文件选择、预览、上传的过程中,需要适当处理错误。如用户取消文件选择、选择的文件格式不支持、上传过程失败等情况,都需要给出相应的提示和错误处理。 以上是在h5页面中选择上传相册图片的大致步骤。根据具体需求和技术实现的方式,可能会有一些细节上的差异,但整体思路是相似的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP开光程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值