Example #1
0
 /**
  * 文件上传
  * @param  array  $files   要上传的文件列表(通常是$_FILES数组)
  * @param  array  $setting 文件上传配置
  * @param  string $driver  上传驱动名称
  * @param  array  $config  上传驱动配置
  * @return array           文件上传成功后的信息
  */
 public function upload($files, $setting, $driver = 'Local', $config = null)
 {
     /* 上传文件 */
     $setting['callback'] = array($this, 'isFile');
     $Upload = new \COM\Upload($setting, $driver, $config);
     $info = $Upload->upload($files);
     /* 设置文件保存位置 */
     $this->_auto[] = array('location', 'Ftp' === $driver ? 1 : 0, self::MODEL_INSERT);
     if ($info) {
         //文件上传成功,记录文件信息
         foreach ($info as $key => &$value) {
             /* 已经存在文件记录 */
             if (isset($value['id']) && is_numeric($value['id'])) {
                 continue;
             }
             /* 记录文件信息 */
             if ($this->create($value) && ($id = $this->add())) {
                 $value['id'] = $id;
             } else {
                 //TODO: 文件上传成功,但是记录文件信息失败,需记录日志
                 unset($info[$key]);
             }
         }
         return $info;
         //文件上传成功
     } else {
         $this->error = $Upload->getError();
         return false;
     }
 }
 public function upload()
 {
     if (IS_POST) {
         //又拍云
         // $config = array(
         //     'host'     => 'http://v0.api.upyun.com', //又拍云服务器
         //     'username' => 'zuojiazi', //又拍云用户
         //     'password' => 'thinkphp2013', //又拍云密码
         //     'bucket'   => 'thinkphp-static', //空间名称
         // );
         // $upload = new \COM\Upload(array('rootPath' => 'image/'), 'Upyun', $config);
         //百度云存储
         $config = array('AccessKey' => '3321f2709bffb9b7af32982b1bb3179f', 'SecretKey' => '67485cd6f033ffaa0c4872c9936f8207', 'bucket' => 'test-upload', 'size' => '104857600');
         $upload = new \COM\Upload(array('rootPath' => './Uploads/bcs'), 'Bcs', $config);
         $info = $upload->upload($_FILES);
     } else {
         $this->display();
     }
 }