http://www.thinkphp.cn/topic/35149.html


public function upload(){
        
        $upload = new Upload();//实列化上传类
        $upload->maxSize=3145728;//设置上传文件最大,大小
        $upload->exts= array('jpg','gif','png','jpeg');//后缀
        $upload->rootPath ='./Uploads/';//上传目录
        $upload->savePath      =  '/Products_Images/'; // 设置附件上传(子)目录
        $upload->autoSub     = true;
        $upload->subName     = array('date','Ymd');
        $upload->saveName = array('uniqid','');//设置上传文件规则
        $info= $upload->upload();//执行上传方法
        if(!$info){
            $this->error($upload->getError());
        }else {
            
            //获取上传文件信息
            foreach ($info as $file){
                $p_w_picpath = $file['savepath'].$file['savename'];
                $size = $file['size'];
                $dir=  $file['savepath'];
                $filename=$file['savename'];
                
            }
            //图片物理目录删除、改名图片用
            $path= './Uploads'.$dir;
            
            $img =new 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;
   //写入到数据库中,下面date,pic,thumb都为数据表对应的字段
            $m=D('Products'); //和数据表名相对应
            if (!$m->create()){
                $this->error($m->geterror());
            }
            //注意,非表单自动创建提交的数据,要写在if判断之后才能提交到数据库
            $m->date=time();
            $m->pic=$p_w_picpath;         
            $m->thumb =$thumb;
            $arr=$m->add();         
            $this->success('新增成功',U('Products/index'));
        }
        
    }