1.sae上建立相应的domain就不用说了。
2.代码:
public function upimg()
{
$config = array(
'maxSize' => 5242880, // 设置附件上传大小5m
'exts' => array('jpg','gif','png','jpeg'), // 设置附件上传类型
'autoSub' => true, //自动子目录保存文件
'subName' => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
'rootPath' => './uploads/', //保存根路径,sae上建立uploads的domain,注意小写啊
'savePath' => 'test/', //保存路径,这个sae会自动建立,不用自己创建了
);
// 实例化上传类,最关键的是要指定sae!
$upload = new \Think\Upload($config,'Sae');
// 上传文件
$info = $upload->upload();
if (!$info)
{ // 上传错误提示错误信息
$this->error($upload->getError());
} else
{ // 上传成功
$this->success('上传成功!');
}
}其中最关键的是$upload = new \Think\Upload($config,'Sae'); ,必须指定sae方式上传。这么关键的使用说明官方都不写清楚,纯粹浪费大家时间!希望及时改正手册!
---更新一下:官方手册中获得上传文件信息的代码也有问题,
官方文档中关于获取上传文件信息的描述是:
$model = M('Photo');
// 取得成功上传的文件信息
$info = $upload->upload();
// 保存当前数据对象
$data['photo'] = $info[0]['savename'];
$data['create_time'] = NOW_TIME;
$model->add($data);实际上 $info[0]['savename'];是根本获取不到值得,因为$info是一个键值对,键值就是你html中input的name,比如你html是:
<input name="myimg" type="file" >
那么你的接受代码就应该是:
$data['photo'] = $info["myimg"]['savename'];
这样才能取到值!
希望官方及时更新文档,不要这样马马虎虎行么?
最佳答案