基于ThinkPHP3.2和layUI的图片上传

首先在服务端写好上传接口。代码如下

class UploadController extends BaseController 
{
    public function uploadImg()
    {
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     3145728 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath  =     './Public/resource/image/'; // 设置附件上传根目录
        $upload->savePath  =     I('savePath'); // 设置附件上传(子)目录
        $width = I("width");   //缩略图宽度
        $height = I("height");  //缩略图高度
        // 上传文件 
        $info   =   $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $code = -1;
            $msg = $upload->getError();
        }else{// 上传成功
            $code = 1;
            $data = $info;
            $msg = 'success';
            
            $image = new \Think\Image();   //实例化图像类
            $i = $upload->rootPath.$info['file']['savepath'].$info['file']['savename'];  //拼接图片路径
            $image->open($i); //打开图片
            $image->thumb($width,$height)->save($upload->rootPath.$info['file']['savepath']."th_".$info['file']['savename']); //保存缩略图
            $data['thImage'] = $info['file']['savepath']."th_".$info['file']['savename'];  //将缩略图路径添加到返回数据中
        }
        \CDMAjax($code,$data,$msg);  //把code,data,msg以json字符串的格式返回

    }
}

 

前端THML:

<div class="layui-form-item">
                <label class="layui-form-label">上传头像</label>
                <div class="layui-input-block">
                    <img id='avatar' src="" alt="">
                    <button type="button" class="layui-btn layui-btn-primary" id="upload">
                        <i class="layui-icon">&#xe67c;</i>上传图片
                    </button>
                    <input type="hidden" name="th_avatar" value="">
                    <input type="hidden" name="avatar" value="">
                </div>
            </div>

js:

layui.use('upload', function(){
            var upload = layui.upload;
            
            //执行实例
            var uploadInst = upload.render({
                elem: '#upload' //绑定元素
                ,url: '{:U("Api/Upload/uploadImg")}' //上传接口,
                ,data: {
                    savePath: 'user/avatar/',
                    width:88,
                    height:88
                }
                ,accept: 'images'
                ,size: 3072
                ,done: function(res){
                    //上传完毕回调
                    let file = res.data.file;
                    $('input[name=avatar]').val(file.savepath + file.savename);
                    $('input[name=th_avatar]').val(res.data.thImage);
                    $('#avatar').attr('src', "__PUBLIC__/resource/image/" + res.data.thImage);
                }
                ,error: function(){
                    layer.msg('未知错误。');
                }
            });
        });

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值