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'));
}
}
转载于:https://blog.51cto.com/phpervip/1925195