狂码一生_优质编程技术资源与您共享

狂码一生_优质编程技术资源与您共享

狂码一生技术博客站主要是以优质编程技术资源共享为核心,以交流学习为目的搭建的在线平台。我们共享一些优质的资源出来,供同行业的同胞交流与学习,让彼此之间在自身的技术上得到提升,本站主要提供程序方面的资源给大家,像PHP,C++,Javascript,html,asp.net,数据库等等方面的资源,本站计划将在后期会不断完善,建设更多类目的资源,希望能得到更多同行的支持!

ThinkPHP文件上传

    在自己写的类中加入一个方法,下面我把我写的一个方法直接拿上来:

    /*
     * 文件上上传
     * */
    public function fileUpload(){
        //指定文件保存的根目录,我的是在网站根目录下的Uploads中保存,这里依实际改变
        $requestRootPath = '/Uploads/';
        $uploadRootPath = '.'.$requestRootPath;
        
        //导入上传类
        import("@.ORG.UploadFile");
        //实例化上传类
        $upload = new \Think\Upload();
        //设置上传文件大小
        $upload->maxSize = 3292200;
        //设置上传文件类型
        $fileType = array(
            'jpg','gif','png','jpeg',
            'txt','doc','docx','ppt','pptx','xls','xlsx'
        );
        $upload->allowExts = $fileType;
        //设置附件上传目录
        $upload->rootPath = $uploadRootPath;
        //设置需要生成缩略图,仅对图像文件有效
        $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;
        //执行上传类中upload方法进行文件保存与参数返回,并将返回的参数赋给$uploadResult
        $uploadResult = $upload->upload();
        if (!$uploadResult) {
            //捕获上传异常
            $this->error($upload->getError);
        } else {
            //取得成功上传的文件信息
            //$uploadList = $upload->getUploadFileInfo();
            //导入图形类
            import("@.ORG.Image");
            //给m_缩略图添加水印, Image::water('原文件名','水印图片地址'),下面仅为一个示例,依自己需求进行使用
            Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
            //$_POST['image'] = $uploadList[0]['savename'];
            //将文件信息保存到文件表中
            /*
            *
            *.............这里写自己的处理程序
            *
            */
            //如果用的异步,则返回结果
            $this->ajaxReturn($result);
        }
    }

    如果在您的ThinkPHP项目中有多处需要上传文件 ,那么在可以用这个方法为总入口,进行一个自定封装,其它地方可以传参数调用。


版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处: [
狂码一生 ] http://www.sindsun.com/article-details-17.html
[若此文确切存在侵权,请联系本站管理员进行删除!]

评论