您的位置:首页 > 编程语言 > PHP开发

ThinkPhP3.2中图片添加,并生成缩略图

2017-06-26 11:57 309 查看
1:视图层:

<form class="layui-form" action="__APP__/Home/Goods/addgoodsDo" method="post" enctype="multipart/form-data"> <!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 -->

  <div class="layui-form-item">

    <label class="layui-form-label">人气值</label>

    <div class="layui-input-block">

      <input type="text" name="subcount" required  lay-verify="required" placeholder="请输入人气值" autocomplete="off" class="layui-input">

    </div>

  </div>

  <div class="layui-form-item">

    <label class="layui-form-label">商品名称</label>

    <div class="layui-input-block">

      <input type="text" name="title" required  lay-verify="required" placeholder="请输入商品名称" autocomplete="off" class="layui-input">

    </div>

  </div>

  <div class="layui-form-item">

    <label class="layui-form-label">商品分类</label>

    <div class="layui-input-block">

      <select name="pcate" lay-filter="aihao">

        <option value="">请选择</option>

       <?php foreach($category as $key=>$value){ ?>

          <option value="<?php echo $value['id']?>"><?php echo $value['name']?></option>

        <?php }?>

       </select>

    </div>

  </div>

  <div class="layui-form-item">

    <label class="layui-form-label">商品图片</label>

    <div class="layui-input-block">

      <input type="file" name="thumb">

    </div>

  </div>

2控制器:

第一种情况没有缩略图上传:

      public function addgoodsDo()

        {    

            $upload = new \Think\Upload();// 实例化上传类   

            $upload->maxSize   =     3145728 ;// 设置附件上传大小   

            $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型

            $upload->rootPath    =        './Uploads/';//上传根目录

            $upload->savePath  =      './Home/Public/Uploads/'; // 设置附件上传目录    // 上传文件    

            $info   =   $upload->uploadOne($_FILES['thumb']);

            if(!$info) {// 上传错误提示错误信息        

                $this->error($upload->getError());    

            }else{// 上传成功

                //print_r($info);die;

                $seller=$_SESSION['seller'] ;

                $storeid=$seller['id'];

                $subcount=I('post.subcount');//人气值

                $title=I('post.title');//商品名称

                $find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();

                if($find)

                {

                    $this->error('您已经添加过该名称商品');  

                }

                $pcate=I('post.pcate');//商品分类

        
4000
        $marketprice=I('post.marketprice');

                $productprice=I('post.productprice');

                $credit=I('post.credit');

                $unitname=I('post.unitname');

                $description=I('post.description');

                $displayorder=I('post.displayorder');

                $thumb=$info['savepath'].$info['savename'];//获取图片信息

                $data=[

                'storeid'=>$storeid,

                'subcount'=>$subcount,

                'title'=>$title,

                'pcate'=>$pcate,

                'marketprice'=>$marketprice,

                'productprice'=>$productprice,

                'credit'=>$credit,

                'unitname'=>$unitname,

                'description'=>$description,

                'thumb'=>$thumb,

                'displayorder'=>$displayorder,

                ];

                $result=M('goods')->add($data);

                if($result)

                {

                    $this->success('上传成功!');    

                }else{

                    $this->error('上传失败!');   

                }

                

             }

        }

第二种情况有缩略图上传:

public function addgoodsDo()

        {    

            $upload = new \Think\Upload();// 实例化上传类   

            $upload->maxSize   =     3145728 ;// 设置附件上传大小   

            $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型

            $upload->rootPath    =        './Uploads/';//上传根目录

            $upload->savePath  =      './Home/Public/Uploads/'; // 设置附件上传目录    // 上传文件    

            $upload->autoSub     = true;

            $upload->subName     = array('date','Ymd');

            $upload->saveName = array('uniqid','');//设置上传文件规则

            $info= $upload->upload();//执行上传方法

            if(!$info) {// 上传错误提示错误信息        

                $this->error($upload->getError());    

            }else{// 上传成功

                //print_r($info);die;

                 //获取上传文件信息

                foreach ($info as $file){

                    $image = $file['savepath'].$file['savename'];

                    $size = $file['size'];

                    $dir=  $file['savepath'];

                    $filename=$file['savename'];

                    

                }

                //图片物理目录删除、改名图片用

                $path= './Uploads'.$dir;

                $img =new  \Think\Image();//实例化

                $img->open($path.$filename);//打开物理图片

               //使用thumb方法生成缩略图并改名为:som_.$filename此时在项目根目录上

                $img->thumb(150, 150)->save(som_.$filename);

                //重新赋值方便处理

                $oldfile=som_.$filename;

                //rename()更改成新的文件名,此时还在项目根目录上

                rename($oldfile, new_.$filename);

                //重新赋值方便处理 new_.$filename为更名后新文件名

                $newfile=new_.$filename;

                //移动新文件到物理$path 目录最终生缩略图文件为:new_xxxx.jpg(后缀名不作更改只是在前加了new_)

                rename($newfile,"$path/$newfile" );

                //$thumb获取缩略图的地址和文件名用于写放数据库用

                $thumb=$file['savepath'].$newfile;

                $seller=$_SESSION['seller'] ;

                $storeid=$seller['id'];

                $subcount=I('post.subcount');//人气值

                $title=I('post.title');//商品名称

                $find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();

                if($find)

                {

                    $this->error('您已经添加过该名称商品');  

                }

                $pcate=I('post.pcate');//商品分类

                $marketprice=I('post.marketprice');

                $productprice=I('post.productprice');

                $credit=I('post.credit');

                $unitname=I('post.unitname');

                $description=I('post.description');

                $displayorder=I('post.displayorder');

                //$thumb=$info['savepath'].$info['savename'];//获取图片信息

                $data=[

                'storeid'=>$storeid,

                'subcount'=>$subcount,

                'title'=>$title,

                'pcate'=>$pcate,

                'marketprice'=>$marketprice,

                'productprice'=>$productprice,

                'credit'=>$credit,

                'unitname'=>$unitname,

                'description'=>$description,

                'thumb'=>$thumb,//数据库中表图片字段

                'displayorder'=>$displayorder,

                ];

                $result=M('goods')->add($data);

                if($result)

                {

                    $this->success('上传成功!');    

                }else{

                    $this->error('上传失败!');   

                }

                

             }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: