新闻的增查改删以及图片缩略图上传和删除

原创 2018-12-04 14:15:53 361
摘要:我的疑问:当删除数据库的图片的时候,如果删除upload里面的相关图片?我使用的是@unlink好像没有效果。 @unlink($res['news_pic']);新闻的增查改删+以及图片上传<?php namespace app\admin\controller; use think\Controller; use app\admin

我的疑问:

当删除数据库的图片的时候,如果删除upload里面的相关图片?

我使用的是@unlink好像没有效果。

 @unlink($res['news_pic']);

新闻的增查改删+以及图片上传

<?php
namespace app\admin\controller;
use think\Controller;
use app\admin\model\news as newsModel;
use think\facade\Request;
// use think\facade\Session;
class News extends Controller
{
    //渲染添加模板
    public function add()
    {
        return $this->fetch();
    }

    //获取上传的图片并返回信息
    public function upload()
    {
        // 获取上传的图片
         $file = Request::file('file');
        if ($info = $file->validate(['ext' => 'jpg,jpeg,png,gif'])->move('upload')) {
            $fileName='/upload/'.$info->getSaveName();
             return json(['1'=>'上传成功!','data' => $fileName]);
        }else{
            return $file->getError();
        }
    }

    public function doadd()
    {
        // 获取异步提交的表单信息
         $data =Request::param();
         $pics = [];
         // 对上传上来的多张图片二维数组转成一维数组
         foreach ($data['news_pic'] as $k => $v) {
             $pics[]=$v;
         }
         // 把一维数组转化成字符串保存到数据库
         $pic=implode(',', $pics);
         $data['news_pic']=$pic;
         $res=newsModel::create($data);
         if ($res) {
             return ['res'=>1,'msg'=>'添加成功'];
         }else{
             return ['res'=>2,'msg'=>'添加失败'];
         }
    }


    public function lst()
    {
        // 获取数据库所有的数据
        $res = newsModel::all();
        //把所有的图片字段的字符串转成一维数组
        foreach ($res as $k => $v) {
            $v1=explode(',', $v['news_pic']);
            $v['news_pic']=$v1;
        }
        // dump($res);die;
        $this->assign('res',$res);
        return $this->fetch();
    }

    public function edit()
    {
        // 获取id
        $id =Request::param('id');
        $data = newsModel::get($id);
        // 把数据库中的图片字段转化成数组
        $pic=explode(',',$data['news_pic']);

        $this->assign([
            'data'=>$data,
            'pic'=>$pic,
            ]);
        return $this->fetch();
    }

    public function doedit()
    {
        // 获取异步提交的表单信息
         $data =Request::param();
         // 通过id获取数据库中的该条信息
         $res=newsModel::get($data['id']);
         // 判断如果提交中的数据中,是否有图片的信息,
         if ($data['news_pic']) {
            // 有的话,则判断数据库中是否有图片的信息
             if ($res['news_pic']) {
                // 把图片字符串转成数组
                $arr=explode(',',$res['news_pic']);
                // 循环删除upload下的图片
                foreach ($arr as $k => $v) {
                    @unlink($res['news_pic']);
                }
                }
            // 把异步提交的表单中的图片字段数据二维数组转成一维数组
            $brr =[];
            foreach ($data['news_pic'] as $k1 => $v1) {
               $brr[]=$v1;
            }
            //把数组转化成字符串,保存到数据库中
            $data['news_pic']=implode(',',$brr);
         }
         $res=newsModel::update($data);
         if ($res) {
             return ['res'=>1,'msg'=>'更新成功'];
         }else{
             return ['res'=>2,'msg'=>'更新失败'];
         }
    }

    public function dele()
    {
        $id=Request::param('id');
        $res=newsModel::destroy($id);
        if ($res) {
            return ['res'=>1,'msg'=>'删除成功'];
        }else{
             return ['res'=>2,'msg'=>'删除失败'];
        }
    }
}


批改老师:韦小宝批改时间:2018-12-04 14:30:11
老师总结:你是想删除upload文件夹中的原图是么?你可以通过数据库中存储的图片路径使用文件相关的函数来进行删除!

发布手记

热门词条