zoukankan      html  css  js  c++  java
  • 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....
  • 相关阅读:
    XML(学习笔记)
    css样式学习笔记
    Request(对象)
    sql一些错误修改的总结
    转载(如何学习C#)
    sql server(学习笔记2 W3Cschool)
    sql sqrver(学习笔记1 W3Cschool)
    关于 flutter开发碰到的各种问题,有的已经解决有的一直没解决或者用其他方法替代
    关于 Flutter IOS build It appears that your application still contains the default signing identifier.
    关于 flutter本地化问题 The getter 'pasteButtonLabel' was called on null
  • 原文地址:https://www.cnblogs.com/iplus/p/4490053.html
Copyright © 2011-2022 走看看