thinkphp上传图片及生成缩略图

[v_error]一、上传图片的HTML代码[/v_error]

  
  
      
          
        upload  
      
      
        thinkphp上传图片及生成缩略图  
     
    

[v_error]一定要注意的是,form表单的属性一定要写上,缺一不可。[/v_error]

method='post' enctype="multipart/form-data"  

[v_error]二、上传图片后再生成缩略图保存[/v_error]
thinkphp上传图片及生成缩略图
[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 ; //固定尺寸缩放类型

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/huodong/55.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2018年4月3日 下午8:37
下一篇 2018年5月6日 下午4:24

相关推荐

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----