基于layui 图片截取(剪裁)上传图片,主要用于用户头像上传

在开发中,可能会遇到一些需求,比如,在用户上传头像时,根据自己的图片大小进行截取;

账号和密码:he 123456

体验地址:
blog.itxkf.cn/admin/login/login

具体功能:

在:

 

效果如下:

代码如下:

 <div class="layui-form-item">
                <label class="layui-form-label">管理员头像</label>

                <div class="layui-input-block">
                    <div class="layui-upload">
                        <button type="button" class="layui-btn" id="test1" data-src="{$find.admin_logo}">上传图片</button>
                        <div class="layui-upload-list">
                            <img class="layui-upload-img" id="demo1" style="width: 100px;height: 100px;" src="{$find.admin_logo}">
                            <p id="demoText"></p>
                        </div>
                    </div>
                </div>
            </div>


js:

JS:


layui.config({
        base: '/static/cropper/' //layui自定义layui组件目录
    }).use(['form','croppers'], function () {
        var $ = layui.jquery
            ,form = layui.form
            ,croppers = layui.croppers
            ,layer= layui.layer;

        //创建一个头像上传组件
        croppers.render({
            elem: '#test1'
            ,saveW:150     //保存宽度
            ,saveH:150   //保存高度
            ,mark:1/1    //选取比例
            ,area:'900px'  //弹窗宽度
            ,url: "{:url('admin/upload/img_save',['type'=>'admin'])}"  //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
            ,done: function(data){ //上传完毕回调
                if(data.code==1){
                    $('#demo1').attr('src', data.url);
                    $('#test1').attr('data-src', data.url);  //成功返回路径存到数据库
                }else {
                    return layer.msg('上传失败');
                }
               /* $("#inputimgurl").val(url);
                $("#srcimgurl").attr('src',url);*/
            }
        });

    });

控制器:

    public function img_save(){
        $type=input("param.type");
        $img = request()->file('file');
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $img->move(ROOT_PATH . 'public' . DS . 'upload'. DS . $type. DS . date('Y') . DS . date('m-d'),md5(microtime(true)));
        if($info){
            // 成功上传后 获取上传信息
            $imgPath = "/upload/$type/" . date('Y') . '/' . date('m-d') . '/' . $info->getSaveName();
            return json(["code"=> 1, "msg" => "上传成功", "url" => $imgPath]);
        }else{
            // 上传失败获取错误信息0
            return json(["code"=> 0, "msg" => $img->getError(), "url" => '']);
        }

    }


 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值