• THinkPHP上面关于图片上传类的使用


    在ThinkPHP提供的官方实例中有一个上传图像类的代码非常好,在这里我给分析下,如何的使用。

    实例代码如下:

    <?php 
    
    class IndexAction extends Action { 
    
        public function index() { 
            $Photo = M('Photo'); 
            $list = $Photo->order('create_time desc')->limit(2)->findAll();
            $this->assign('list', $list); 
            $this->display(); 
        } 
    
        public function upload() { 
            if (!empty($_FILES)) { 
                //如果有文件上传 上传附件 
                $this->_upload(); 
                //$this->forward(); 
            } 
        } 
    
        // 文件上传 
        protected function _upload() { 
            import("@.ORG.UploadFile"); 
            $upload = new UploadFile(); 
            //设置上传文件大小 
            $upload->maxSize = 3292200; 
            //设置上传文件类型 
            $upload->allowExts = explode(',', 'jpg,gif,png,jpeg'); 
            //设置附件上传目录 
            $upload->savePath = '/tp/Examples/File/Tpl/default/Public/Uploads/'; 
            //设置需要生成缩略图,仅对图像文件有效 
            $upload->thumb = true; 
            // 设置引用图片类库包路径 
            $upload->imageClassPath = '@.ORG.Image'; 
            //设置需要生成缩略图的文件后缀 
            $upload->thumbPrefix = 'm_,s_';  //生产2张缩略图 
            //设置缩略图最大宽度 
            $upload->thumbMaxWidth = '400,100'; 
            //设置缩略图最大高度 
            $upload->thumbMaxHeight = '400,100'; 
            //设置上传文件规则 
            $upload->saveRule = uniqid; 
            //删除原图 
            $upload->thumbRemoveOrigin = true; 
            if (!$upload->upload()) { 
                //捕获上传异常 
                $this->error($upload->getErrorMsg()); 
            } else { 
                //取得成功上传的文件信息 
                $uploadList = $upload->getUploadFileInfo(); 
                import("@.ORG.Image"); 
                //给m_缩略图添加水印, Image::water('原文件名','水印图片地址') 
                Image::water($uploadList[0]['savepath'].'m_'.$uploadList[0]['savename'], '/tp/Examples/File/Tpl/default/Public/Images/logo2.png');
                $_POST['image'] = $uploadList[0]['savename']; 
            } 
            $model = M('Photo'); 
            //保存当前数据对象 
            $data['image'] = $_POST['image']; 
            $data['create_time'] = time(); 
            $list = $model->add($data); 
            if ($list !== false) { 
                $this->success('上传图片成功!'); 
            } else { 
                $this->error('上传图片失败!'); 
            } 
        } 
    
    
    
    } 
    
    ?>


    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    css字体属性相关。
    子级用css float浮动 而父级div没高度不能自适应高度
    转载:基于Redis实现分布式锁
    LeetCode(53):最大子序和
    LeetCode(52):N皇后 II
    LeetCode(51):N皇后
    LeetCode(50):Pow(x, n)
    LeetCode(49): 字母异位词分组
    LeetCode(48):旋转图像
    LeetCode(47):全排列 II
  • 原文地址:https://www.cnblogs.com/iplus/p/4490053.html
Copyright © 2020-2023  润新知