前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP文件上传

ThinkPHP文件上传

作者头像
Sindsun
发布2018-04-28 11:16:37
3.2K0
发布2018-04-28 11:16:37
举报
文章被收录于专栏:狂码一生狂码一生

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

代码语言:javascript
复制
    /*
     * 文件上上传
     * */
    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 [若此文确切存在侵权,请联系本站管理员进行删除!]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档