[v_error]一、上传图片的HTML代码[/v_error]
upload
[v_error]一定要注意的是,form表单的属性一定要写上,缺一不可。[/v_error]
method='post' enctype="multipart/form-data"
[v_error]二、上传图片后再生成缩略图保存[/v_error]
[v_warn]出现如上所示问题,是因为根目录不存在,$upload->rootPath的默认根目录为当前项目下的Uploads文件夹,即:”./Uploads/”;
可以手动创建,也可以将根目录修改为已经存在的目录。[/v_warn]
if (!empty($_FILES)) { $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 2048000; //上传文件最大大小 $upload->allowExts = array('jpg','jpeg','gif','png');//允许上传文件类型 $upload->rootPath = "./Application/Home/Public/"; //文件保存根目录,可以自定义 $upload->savePath = "Uploads/"; //文件保存目录 $upload->replace = 'true'; //可以替换相同名称的文件 $upload->saveName = 'image'; $file = $upload->upload()['image']; if(!$file){ $this->error($upload->getError());//获取失败信息 } else { $img = "./Application/Home/Public/".$file['savepath'].$file['savename'];//获取文件上传目录 $image = new \Think\Image(); $image->open($img); //打开上传图片 $image->thumb(102, 142,\Think\Image::IMAGE_THUMB_FIXED)->save($desitination.'thumb.jpg');//生成缩略图 } }
[v_error]
三、生成缩略图之后再保存缩略图[/v_error]
图片上传过程中,直接对上传文件暂存目录下的图片进行处理,生成缩略图并保存,则原图片就不再保存,减少内存的消耗。
public function img(){ $name = $_FILES['image']['tmp_name'];//从上传文件暂存目录下读取文件 $image = new \Think\Image(); $image->open($name);//生成缩略图 $image->thumb(102, 142,\Think\Image::IMAGE_THUMB_FIXED)->save('./image.jpg'); }
并且支持多种类型的缩略图生成,设置包括Think\Image的下列常量或者对应的数字
IMAGE_THUMB_SCALE = 1 ; //等比例缩放类型 IMAGE_THUMB_FILLED = 2 ; //缩放后填充类型 IMAGE_THUMB_CENTER = 3 ; //居中裁剪类型 IMAGE_THUMB_NORTHWEST = 4 ; //左上角裁剪类型 IMAGE_THUMB_SOUTHEAST = 5 ; //右下角裁剪类型 IMAGE_THUMB_FIXED = 6 ; //固定尺寸缩放类型