Blogger Information
Blog 95
fans 0
comment 11
visits 249414
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文章发布和文件上传
龍__遇见彩虹的博客
Original
1610 people have browsed it

前端页面insert.html

<form action="{:url('index/save')}" class="form-horizontal" method="post" id="login" enctype="multipart/form-data" >
			<input type="hidden" name="user_id" value="{$Think.session.user_id}" />
  			<div class="form-group">
    			<label for="title" class="col-sm-2 control-label">标题</label>
    			<div class="col-sm-6">
      				<input type="text" class="form-control" name="title" id="title" placeholder="title">
    			</div>
  			</div>
  			<div class="form-group">
    			<label class="col-sm-2 control-label">分类</label>
    			<div class="col-sm-6">
    			  <select name="cate_id" id="" class="form-control">
    				{volist name='cateList' id='cate'}
    				  <option value="{$cate.id}">{$cate.name}</option>
    				{/volist}
    			  </select>
    			</div>
  			</div>
  			<div class="form-group">
    			<label class="col-sm-2 control-label">内容</label>
    			<div class="col-sm-6">
      				<textarea name="content" class="form-control" style="min-height: 180px;"></textarea>
    			</div>
  			</div>
  			<div class="form-group">
    			<label for="title_img" class="col-sm-2 control-label">标题图片</label>
    			<div class="col-sm-6">
      				<input type="file" name="title_img" id="title_img">
    			</div>
  			</div>

  			<div class="form-group">
    			<div class="col-sm-offset-2 col-sm-6">
      				<button type="submit" class="btn btn-primary" id="submit">发布</button>
    			</div>
  			</div>
		</form>



后台:

模型     ArtCate.php

<?php
namespace app\common\model;

use think\Model;

/**
 * zh_user表的模型
 */
class ArtCate extends Model
{
	protected $pk = 'id';//默认主键
	protected $table = 'zh_article_cate';//默认数据表
	
//	第一种方式是全局开启,在数据库配置文件中进行设置:
//	'auto_timestamp' => true,
//	protected $autoWriteTimestamp = true;//我已经在数据库配置文件中进行设置,这里不需要设置,不用设置为false即可

	// 定义时间戳字段名
	protected $createTime = 'create_time';
	protected $updateTime = 'update_time';
	//定义时间格式
	protected $dateFormat = 'Y年m月d日';
	
	//开启自动模式
	protected $auto = [];//无论是新增或更新都要设置的字段
	//仅新增的有效(参数是字段名)
	protected $insert = ['create_time', 'status'=>1];
	//仅更新的设置有效(参数是字段名)
	protected $update = ['update_time'];
}


模型      Article.php

<?php
namespace app\common\model;

use think\Model;

/**
 * zh_user表的模型
 */
class Article extends Model
{
	protected $pk = 'id';//默认主键
	protected $table = 'zh_article';//默认数据表
	
//	第一种方式是全局开启,在数据库配置文件中进行设置:
//	'auto_timestamp' => true,
//	protected $autoWriteTimestamp = true;//我已经在数据库配置文件中进行设置,这里不需要设置,不用设置为false即可

	// 定义时间戳字段名
	protected $createTime = 'create_time';
	protected $updateTime = 'update_time';
	//定义时间格式
	protected $dateFormat = 'Y年m月d日';
	
	//开启自动模式
	protected $auto = [];//无论是新增或更新都要设置的字段
	//仅新增的有效(参数是字段名)
	protected $insert = ['create_time', 'status'=>1, 'is_hot'=>0, 'is_top'=>0];
	//仅更新的设置有效(参数是字段名)
	protected $update = ['update_time'];
}


文章验证器     Article.php

<?php
namespace app\common\validate;

use think\Validate;//调用框架的验证类

class Article extends Validate
{
	protected $rule = [
		'title|标题' => 'require|length:2,50|chsAlphaNum',
//		'title_img|图片' => 'require',
		'content|文章内容' => 'require',
		'user_id' => 'require',
		'cate_id' => 'require',
	];
}


控制器(重要)保存文章        index.php

一开始记得引入TP框架类问价和自定义类问价

use app\common\model\ArtCate;

use app\common\model\Article;

use think\facade\Request;

    /**
     * 保存文章
     */
    public function save()
    {
    	//判断提交类型是否为post
    	if(Request::isPost()){
    		//获取用户提交的文章信息
    		$data = Request::post();
//  		halt($data);//测试,打印输出
			$rule = 'app\common\validate\Article';
			$res = $this->validate($data, $rule);
			if($res !== true){
				//验证失败
				$this->error($res);
			}else{
				//判断是否有选择上传文件,选择了文件才进行验证等等步骤
				if(!empty($_FILES['title_img']['tmp_name'])){
//					echo '已选择文件';
					
					//验证成功,获取上传的信息
					$file = Request::file('title_img');				
					//文件信息验证成功后,再上传服务器指定目录,以public为起始目录
					$info = $file->validate([
						'size'=>1000000,
						'ext'=>'jpeg,jpg,png,gif',
					])->move('uploads/');				
					//判断是否上传成功
					if($info){
						$data['title_img'] = $info->getSaveName();
					}else{
						$this->error($file->getError());
					}					
				}
				
				//将数据插入数据表中
				if(Article::create($data)){
					$this->success('文章发布成功!', 'index/index');
				}else{
					$this->error('文章发布失败!');
				}				
			}			
    	}else{
    		$this->error('请求类型错误!');
    	}
    }



数据表结构

TIM截图20180809174938.png





Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post