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。