# Html 页面 ~~~ {extend name='/father/index' /} {block name='nave'} <nav role="navigation" class="navbar navbar-default"> <div class="container"> <div class="row"> <div class="col-sm-12" > <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse"> <span class="sr-only">切换导航</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="example-navbar-collapse"> <ul class="_menu" > <li ><a href="index.html">首页</a></li> <li><a href="">新闻</a></li> <li><a href="">军事</a></li> <li><a href="">娱乐</a></li> {if session('uid')} <li > <div class="dropdown"> <button class="btn btn-success dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> {$Think.session.usename} </button> <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item" href="">发布文章</a> <a class="dropdown-item" href="/logout">退出登录</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div> </li> {else/} <li class="_active"><a href="login">登录</a></li> <li ><a href="register">注册</a></li> {/if} </ul> </div> </div> </div> </div> </nav> {/block} {block name='left'} <div style="height:600px;width: 1200px"> <main class="col-md-1"></main> <main class="col-md-10 justify-content-center"> <form method="post" id="register" class="form-horizontal" style="padding-bottom: 0px" > <div class="card" style="padding-bottom: 100px"> <div class="card-header"> 文章添加 </div> <div class="card-block"> <div class="form-group mt-4 "> <label class="col-sm-3 control-label">文章标题</label> <div class="col-sm-7"> <input type="text" name="title" class="form-control" required> </div> </div> </div> <div class="card-block"> <div class="form-group mt-4 "> <label class="col-sm-3 control-label">文章栏目</label> <div class="col-sm-7"> <div class="input-group "> <select class="custom-select" id="inputGroupSelect01" name="cate_id"> <option selected=""><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">选择...</font></font></option> {foreach $categorys as $v} <option value="{$v['id']}"><font style="vertical-align: inherit;"> <font style="vertical-align: inherit;">{$v['name']}</font></font></option> {/foreach} </select> </div> </div> </div> </div> <input type="text" hidden name="{$Think.session.uid}"> <div class="card-block"> <div class="form-group mt-4 "> <label class="col-sm-3 control-label">文章图片</label> <div class="col-sm-7"> <div class="input-group "> <div class="custom-file"> <input type="file" name="title_img" id="title_img" /> </div> </div> </div> </div> </div> <div class="card-block"> <div class="form-group mt-4 "> <label class="col-sm-3 control-label">文章内容</label> <div class="col-sm-7"> <div id="editormd"> <textarea style="width: 600px;height: 200px;" name="content"></textarea> </div> </div> </div> </div> <input type="hidden" name="user_id" value="{$Think.session.uid}"> <div class="text-center "> <button type="button" class="btn btn-success" id="reg">发布文章</button> <button type="button" class="btn btn-danger " id="ret">重新输入</button> </div> </div> </form> </main> <main class="col-md-3"></main> </div> <div style="padding-bottom: 10px"></div> <script> $(function () { $('#reg').click(function () { let data = new FormData($("#register")[0]); $.ajax({ type: 'post', url: "{:url('/article')}", data:data, contentType: false, //不设置内容类型 processData: false, //不处理数据 dataType: 'json', success: function(data){ if (data.status ==1) { swal({ text: data.message, icon: "success", button: false }); function success() { window.location.href= "{:url('index/index')}" } setTimeout(success,2000) }else{ swal({ text: data.message, icon: "warning", button: false, }); } } }) }) //表单清空 $('#ret').click(function () { $('#register')[0].reset(); }) }) </script> {/block} ~~~ ~~~ public function save(Request $request) { // // 获得前台提交的数据是否是post提交 if (\think\facade\Request::isPost()){ // 获得post提交的数据 $date = $request->param(); //调用 article 里面书写验证规则 $validata = new \app\index\common\validata\Article(); //把数据传入验证规则里面,会返回一个布尔值 $rules = $validata->check($date); //验证通过 if ($rules){ //获取上传的标题图片信息 $file = \think\facade\Request::file('title_img'); //获取file对象 //文件信息验证与上传到服务器指定目录 $info = $file -> validate([ 'size'=>5000000000, //文件大小 100万字节是约等于1M 'ext'=>'jpeg,,png,jpg,gif' //文件扩展名 ]) -> move('uploads/'); //移动到public/uploads目录下面 //图片验证规则是否为真 if ($info) { // 把图片上传的路径存储到数据表中 $date['title_img'] = $info->getSaveName(); } else { //规则匹配不对,返回错误的信息 return ['status'=>'0','message'=>$file->getError()]; } // halt($date); //将数据写到文档表中 if(\app\index\model\Article::create($date)){ return ['status'=>'1','message'=>'文章发布成功']; } else { return ['status'=>'0','message'=>'文章发布失败']; } }else{ return ['status' => '0','message' => $validata->getError()]; } } else{ return ['status' => '0','message' => '你请求的方式不正确']; } } ~~~