当前位置 博文首页 > thinkPHP实现上传图片及生成缩略图功能示例

    thinkPHP实现上传图片及生成缩略图功能示例

    作者:ikesi-X 时间:2021-09-21 19:07

    本文实例讲述了thinkPHP实现上传图片及生成缩略图功能。分享给大家供大家参考,具体如下:

    记录一下在thinkPHP上传图片的方法(Upload)和生成缩略图(Image)的方法.

    html页面form中必须加enctype="multipart/form-data"

    <form action="__SELF__" method="post" enctype="multipart/form-data">
     <table width="100%"class="cont">
       <tr>
       <td>照片:</td>
       <td width="20%"><input type="file" name="pic"  /></td>
       <td colspan="3"><input class="btn" type="submit" value="提交" /></td>
       <td>&nbsp;</td>
        </tr>
      </table>
    </form>
    
    

    php代码

    <?php
    namespace Admin\Controller;
    use Org\Util\Date;
    use Think\Controller;
    use Think\Image;
    use Think\Upload;
    class UserController extends Controller {
      public function add(){
        $user = M('user');
        if(!empty($_POST)){
          $user = $user->create();
          //判断传入的图片有没有问题
          if($_FILES['pic']['error'] == 0){
            $config = array(
              'rootPath'  => './Application/public/image/' // 设置图片保存路径
            );
            //new一个上传模型
            $upload = new Upload($config);
            //上传图片
            $pic = $upload->uploadOne($_FILES['pic']);
            //将图片保存到数据库中
            $user['big_pic'] = $pic['savepath'].$pic['savename'];
            //生成缩略图
            $img = new Image();
            //大图片的路径
            $big_img = $upload->rootPath.$user['big_pic'];
            //打开大图片
            $img->open($big_img);
            //设置图片大小
            $img->thumb(200,300);
            //设置绝对路径
            $small_img = $upload->rootPath.$pic['savepath'].'small_'.$pic['savename'];
            //保存
            $img->save($small_img);
            //将图片名称存入数据库
            $user['img'] = $pic['savepath'].'small_'.$pic['savename'];
          }
          $user['create_date'] = date("Y-m-d H:i:s");
          $msg = "添加失败";
          if(M("user")->add($user))
            $msg = "添加成功";
          $this->redirect(show_list,null,3,$msg);
        }
        $this->display();
      }
    
    

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    jsjbwy
    下一篇:没有了