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" id="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();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值