admin 发表于 2022-9-27 22:50:57

THINKPHP 模板上传图片--后台接收图片

//前台{extend name="public/base" /}
{block name="body"}


    <div class="row">
      <div class="col-md-8">

            <div class="page-header">
            <h2>发布文章</h2>
            </div>
            <form id="uploadForm">
<input type="hidden" value="{$Think.session.user_id}" name="user_id" id="user_id" />

            <div class="form-group">
                <label>标题</label>
                  <input type="text" name="title" id="title" class="form-control" placeholder="文章标题">
            </div>


            <div class="form-group">
                <label >栏目</label>
                  <select class="form-control" name="cate_id" id="cate_id">
                  {volist name="cateList" id="vo"}
                        <option value="{$vo.id}">{$vo.name}</option>
                  {/volist}
                  </select>
            </div>

            <div class="form-group">
                <label>内容</label>
                  <textarea id="content" class="form-control" rows="8" name="content" placeholder="内容"></textarea>
            </div>

            
            <div class="form-group">
                <label >封面图</label>
                  <input type="file" name="title_img" id="inputfile" >
                  <!-- <p class="help-block">Example block-level help text here.</p> -->
                  <div id="info" style=" color:red;margin-bottom: 3px;margin-top: 8px;"></div>
            </div>


            </form>

               <div class="form-group">
                  <buttonclass="btn btn-primary" id="register" style="width:100%">发布</button>
            </div>



      </div>

      <script>
            $(function(){

                $("#register").on('click',function(){

                  var img = $("#inputfile").prop("files");
                  var formData = new FormData();
                  formData.append('title_img', img);
                  formData.append('user_id', $('#user_id').val());
                  formData.append('title', $('#title').val());
                  formData.append('cate_id',$('#cate_id').val());
                  formData.append('content', $('#content').val());


                  $.ajax({
                        url:"{:url('index/insertcl')}",
                        type:"post",
                        data:formData,
                        dataType:'json',
                        cache: false,
                        processData: false,
                        contentType: false,                  
                        success:function(data){
                            //如果输入不合格
                            if(data.status==-1){
                            $('#info').text(data.message);
                            }else{
                              alert(data.message);
                              window.location.href="{:url('index/index')}";
                            }
                        }
                  });
            });
      });
      </script>
{/block}


后台
//发布文章操作
    public function insertcl(){
      $data = $_POST;
      $data['title_img'] =request()->file('title_img');
      //验证器
      $rule = 'app\common\validate\Article';
      $res = $this->validate($data,$rule);
      //验证结果
      if($res!==true){
            return ['status'=>-1,'message'=>$res];
      }   
      
      //获取file对象
      $file =$data['title_img'];
      //文件信息验证与上传到服务器指定目录
      $info = $file->validate([
            'size'=>5000000,//文件大小
            'ext'=>'jpg,jpeg,png,gif'//文件拓展名
      ])->move('uploads/');//移动到public/uploads目录下

      //错误就报错
      if($info==false){
            return ['status'=>-1,'message'=>$file->getError()];
      }

      //获取文件名
      $data['title_img'] = $info->getSaveName();

      $result = Article::create($data);

      if($result){
            return ['status'=>1,'message'=>'发布成功'];
      }
      return ['status'=>0,'message'=>'发布失败'];


    }

页: [1]
查看完整版本: THINKPHP 模板上传图片--后台接收图片