zhangcheng001

js

    $(\'#addbtn\').click(function () {
            var form = document.getElementById("img-form");//获取表单的数据
            var formdata = new FormData(form);//格式化表单数据
            console.log(formdata);
            $.ajax({
                type: "POST",
                async:false,//同步请求
                processData: false,// 不处理发送的数据
                contentType: false,// 不设置Content-Type请求头
                dataType: "json",
                url: "{:url(\'admin/banner/upload\')}",
                data: formdata,
                success: function (res) {
                    if (res.code == 1) {
                        layer.msg(res.msg, {
                            icon: 6,
                            time: 2000
                        }, function () {
                            window.location.href = res.url;
                        })
                    } else {
                        layer.open({
                            title: \'添加失败\',
                            content: res.msg,
                            icon: 5,
                            anim: 6
                        })
                    }
                }
            });
        })

控制器

    // 上传图片
    public function upload()
    {
        if (request()->isPost()) {
            $data = [
                \'title\' => input(\'title\'),
                \'desc\' => input(\'desc\'),
                \'link\' => input(\'link\')
            ];
            $file = request()->file(\'image\');
            if (!$file) {
                $this->error($file->getError());
            }
            //验证
            $map = [
                \'ext\' => \'jpg,png,bmp,jpeg,gif\',
                \'size\' => \'3000000\' //3MB 文件大小单位是字节
            ];
            $info = $file->validate($map)->move(ROOT_PATH . \'public\' . DS . \'uploads\');
            if (!$info) {
                $this->error($file->getError());
            }
            $data[\'path\'] = DS . \'uploads\' . DS . $info->getSaveName();
            $res = model(\'Banner\')->upload($data);
            if ($res == 1) {
                $this->success(\'添加成功!\', \'admin/banner/bannerlist\');
            } else {
                $this->error($res);
            }
        }
    }

模型

class Banner extends Model
{
    //文件上传
    public function upload($data)
    {
        $validate = new ValidateBanner();
        if (!$validate->scene(\'upload\')->check($data)) {
            return $validate->getError();
        }
        $res = $this->allowField(true)->save($data);
        if ($res) {
            return 1;
        } else {
            return \'上传失败!\';
        }
    }
}

验证器

class Banner extends Validate
{
    protected $rule = [
        \'title|标题\' => \'require\',
        \'link|链接\' => \'require\',
        \'desc|描述\' => \'require\'
    ];
    protected $scene = [
        \'upload\' => [\'title\', \'link\', \'desc\']
    ];
}

分类:

技术点:

相关文章: