【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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章