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....
  • 相关阅读:
    python 连接sql server 解决中文乱码 及配置使用 web 服务使用
    Android调用.net的webservice服务器接收参数为空的情况
    好题推荐
    算法中一些trick和细节
    洛谷P2181 对角线
    新的开始
    文化课倒计时80天
    Electron-vue实现后台多进程(三. 自动化测试篇)
    工作感受月记202107月
    工作感受月记202106月
  • 原文地址:https://www.cnblogs.com/iplus/p/4490053.html
Copyright © 2011-2022 走看看