【ThinkPHP学习】ThinkPHP upload与SAE storage结合,实现文件上传

RT.

我的版本是ThinkPHP 3.2版本。官方的文档在SAE的配置方面讲得非常笼统,“简约”,今天摸索了一下结合SAE storage实现文件上传功能,这里贴上我的解决代码:

首先在应用下面新建一个domain,名称为public,由于domain必须小写字母,所以你在本地的存储也最好是小写的字母开头,然后是否在domain中新建文件夹,这个依你个人需求来定,你可以定义好文件夹名称,storage在存储的时候假如没有这个文件夹会自动创建这个文件夹。

    public function upload(){      
         $config = array(
            'maxSize' => 3145728,
            'exts'=>array('jpg', 'gif', 'png', 'jpeg'),
             'rootPath'=>'/public/Uploads/', //文件在本地调试时上传的目录,其实也等同于public的domain下的Uploads文件夹
            'autoSub'=>false  
         );
        $upload = new \Think\Upload($config,'sae');// 实例化SAE文件上传类,最主要就是这里啦,官方文档里并没有将这点说清楚
        // 上传文件
        $info=$upload->uploadOne($_FILES['photo']);//设置单文件上传           
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());  
        }else{// 上传成功
            //$this->success(' 上传成功! ');
            $data['imgUrl'] = "http://XXXXXX(具体拖一张图片出来看).stor.sinaapp.com/Uploads(文件夹)/".$info['savename'];  //生成文件目录路径
            $imgUrl = M('Case');
            $result = $imgUrl->create();
            if(!$imgUrl->add($data)){
                $this->error("添加图片失败!正在跳转",U('caseList'));
            }else{
                //dump($info);
                $this->success("添加图片成功!正在跳转",U('caseList'));
            }
            //dump($data);
        }
    }
希望能够帮到众TPers。

猜你喜欢

转载自blog.csdn.net/killzero/article/details/39008713