SAE上传的正确用法(tp3.2.2版本)

浏览:1554 发布日期:2014/11/12 分类:技术分享 关键字: sae 上传
我不知道tp以前的版本是怎么处理的,但是tp3.2.2的上传教程里写的模糊不清,费了半天时间看了源代码才明白,现在提供一个正确的写法供大家参看。
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'];
这样才能取到值!
希望官方及时更新文档,不要这样马马虎虎行么?
最佳答案
评论( 相关
后面还有条评论,点击查看>>