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。