iplus

在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(\'上传图片失败!\'); 
        } 
    } 



} 

?>


分类:

技术点:

相关文章: