主要看save方法
可以参看thinkphp5.1文档中杂项里的 上传 :
https://www.kancloud.cn/manual/thinkphp5_1/354121
<?php
namespace app\index\controller;
use app\common\controller\Base;//导入公共控制器
use app\common\model\Article;//导入文章模型
use app\common\model\ArticleCategory;//导入文章栏目模型
use think\facade\Request;
class Index extends Base
{
public function index()
{
return $this->fetch();
}
//添加文章界面
public function insert()
{
//1.登录才允许发布
$this->isLogin();
//2.设置页面标题
$this->view->assign('title','发布文章');
//3.获取栏目的信息
$cateList = ArticleCategory::all();
if(count($cateList)>0){
//将查询到的栏目信息赋值给模板
$this->assign('cateList',$cateList);
}else{
$this->error('请先添加栏目','index/index');
}
//4.发布界面渲染
return $this->fetch('insert');
}
//保存文章
public function save()
{
//判断提交类型
if(Request::isPost()){
//1.获取一下用户提交的文章信息
$data = Request::post();
$res = $this->validate($data,'app\common\validate\Article');
if(true !== $res){
//验证失败
echo '<script>alert("'.$res.'");window.location.href="insert";</script>';
}else{
//验证成功
//获取一下上传图片的信息 也就是文件对象 title_img与前端字段相同且与数据库字段相同
$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("请求类型错误");
}
}
}
前端代码为
insert.html
<?php
namespace app\index\controller;
use app\common\controller\Base;//导入公共控制器
use app\common\model\Article;//导入文章模型
use app\common\model\ArticleCategory;//导入文章栏目模型
use think\facade\Request;
class Index extends Base
{
public function index()
{
return $this->fetch();
}
//添加文章界面
public function insert()
{
//1.登录才允许发布
$this->isLogin();
//2.设置页面标题
$this->view->assign('title','发布文章');
//3.获取栏目的信息
$cateList = ArticleCategory::all();
if(count($cateList)>0){
//将查询到的栏目信息赋值给模板
$this->assign('cateList',$cateList);
}else{
$this->error('请先添加栏目','index/index');
}
//4.发布界面渲染
return $this->fetch('insert');
}
//保存文章
public function save()
{
//判断提交类型
if(Request::isPost()){
//1.获取一下用户提交的文章信息
$data = Request::post();
$res = $this->validate($data,'app\common\validate\Article');
if(true !== $res){
//验证失败
echo '<script>alert("'.$res.'");window.location.href="insert";</script>';
}else{
//验证成功
//获取一下上传图片的信息 也就是文件对象 title_img与前端字段相同且与数据库字段相同
$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("请求类型错误");
}
}
}
来源:CSDN
作者:刘远山
链接:https://blog.csdn.net/weixin_39218464/article/details/104303221