/** * 移动文件到目标位置 * @param string $opath 被移动的文件路径 * @param string $path 目标位置(可能是同一api内或跨api,这两种情况分开处理) * @return icosdatas */ public function CopyTo($opath, $path, $iscopy) { $oarr = self::parsePath($opath); $arr = IO::parsePath($path); try { $pcs = self::init($opath); if (is_array($pcs) && $pcs['error']) { return $pcs; } if ($arr['bz'] == $oarr['bz'] && !$iscopy) { //同一api内 $data = self::getMeta($opath); $response = $pcs->moveSingle($oarr['path'], $arr['path'] . '/' . $data['name']); $result = json_decode($response, true); if ($result['error_code']) { $data['success'] = $result['error_msg']; return $data; } $meta = $pcs->getMeta($arr['path'] . '/' . $data['name']); $meta = json_decode($meta, true); //if($meta['error_msg']) return array('error'=>$meta['error_msg']); $meta = $meta['list'][0]; $data['newdata'] = self::_formatMeta($meta, $arr['bz']); $data['success'] = true; return $data; } else { $data = self::getMeta($opath); switch ($data['type']) { case 'folder': //创建目录 if ($re = IO::CreateFolder($path, $data['name'])) { if (isset($re['error']) && intval($re['error_code']) != 31061) { $data['success'] = $re['error']; } else { $data['newdata'] = $re['icoarr']; $data['success'] = true; $contents = self::listFiles($opath); // print_r($contents); foreach ($contents as $key => $value) { $data['contents'][$key] = self::CopyTo($value['path'], $re['folderarr']['path']); } } } break; default: //$fileContent=IO::getFileContent($opath); //exit($opath.'==='.$path.'==='.$data['name']); if ($re = IO::multiUpload($opath, $path, $data['name'])) { if ($re['error']) { $data['success'] = $re['error']; } else { $data['newdata'] = $re; $data['success'] = true; } } } } } catch (Exception $e) { //var_dump($e); $data['success'] = $e->getMessage(); return $data; } return $data; }
/** * 移动文件到目标位置 * @param string $opath 被移动的文件路径 * @param string $path 目标位置(可能是同一api内或跨api,这两种情况分开处理) * @return icosdatas */ public function CopyTo($opath, $path, $iscopy) { $oarr = self::parsePath($opath); $arr = IO::parsePath($path); $data = self::getMeta($opath); switch ($data['type']) { case 'folder': //创建目录 if ($re = IO::CreateFolder($path, $data['name'])) { $data['newdata'] = $re['icoarr']; $data['success'] = true; $contents = self::listFiles($opath); foreach ($contents as $key => $value) { $data['contents'][$key] = self::CopyTo($value['path'], $re['folderarr']['path']); } } break; default: if ($re = IO::multiUpload($opath, $path, $data['name'])) { if ($re['error']) { $data['success'] = $re['error']; } else { $data['newdata'] = $re; $data['success'] = true; } } } return $data; }
/** * 移动文件到目标位置 * @param string $opath 被移动的文件路径 * @param string $path 目标位置(可能是同一api内或跨api,这两种情况分开处理) * @return icosdatas */ public function CopyTo($icoid, $path, $iscopy) { try { $data = self::getMeta($icoid); if (is_numeric($path)) { //如果目标位置也是本地 if (!$iscopy) { $re = self::FileMove($icoid, $path, true); $data['newdata'] = $re['icoarr']; $data['success'] = true; } else { $re = self::FileCopy($icoid, $path, true); $data['newdata'] = $re['icoarr']; $data['success'] = true; } if ($re['error']) { $data['success'] = $re['error']; } } else { switch ($data['type']) { case 'folder': //创建目录 if ($re = IO::CreateFolder($path, $data['name'])) { if (isset($re['error']) && intval($re['error_code']) != 31061) { $data['success'] = $arr['error']; } else { $data['newdata'] = $re['icoarr']; $data['success'] = true; $contents = C::t('icos')->fetch_all_by_pfid($data['oid']); foreach ($contents as $key => $value) { $data['contents'][$key] = self::CopyTo($value['icoid'], $re['folderarr']['path']); } } } break; case 'shortcut': case 'discuss': case 'dzzdoc': case 'user': case 'link': case 'music': case 'video': case 'topic': case 'app': //这些内容不能移动到api网盘内; $data['success'] = lang('message', '非文件类只能存储在企业盘'); break; default: $re = IO::multiUpload($icoid, $path, $data['name']); if ($re['error']) { $data['success'] = $re['error']; } else { $data['newdata'] = $re; $data['success'] = true; } break; } } } catch (Exception $e) { $data['success'] = $e->getMessage(); } $data['iscopy'] = $iscopy; return $data; }
/** * 移动文件到目标位置 * @param string $opath 被移动的文件路径 * @param string $path 目标位置(可能是同一api内或跨api,这两种情况分开处理) * @return icosdatas */ public function CopyTo($opath, $path, $iscopy) { static $i = 0; $i++; $oarr = self::parsePath($opath); $arr = IO::parsePath($path); $jss = self::init($opath); if (is_array($jss) && $jss['error']) { return $jss; } try { $data = self::getMeta($opath); switch ($data['type']) { case 'folder': //创建目录 //exit($arr['path'].'===='.$data['name']); if ($re = IO::CreateFolder($path, $data['name'])) { if (isset($re['error'])) { $data['success'] = $arr['error']; } else { $data['newdata'] = $re['icoarr']; $data['success'] = true; //echo $opath.'<br>'; $contents = self::listFilesAll($jss, $opath); $value = array(); foreach ($contents as $key => $value) { if ($value['path'] != $opath) { $data['contents'][$key] = self::CopyTo($value['path'], $re['folderarr']['path']); } $value = array(); } } } else { $data['success'] = 'create folder failure'; } break; default: /*if($arr['bz']==$oarr['bz']){//同一个api时 $arr=self::parsePath($path.$data['name']); $response=$jss->copy_object($oarr['bucket'],$oarr['object'],$arr['bucket'],$arr['object']); if(!$response->is_ok()){ $data['success']=$response->status; } $meta=array( 'Key'=>$arr['object'], 'Size'=>$data['size'], 'LastModified'=>$response->header['date'], ); $data['newdata']=self::_formatMeta($meta,$arr); $data['success']=true; }else{*/ if ($re = IO::multiUpload($opath, $path, $data['name'])) { if ($re['error']) { $data['success'] = $re['error']; } else { $data['newdata'] = $re; $data['success'] = true; } } //} break; } // } } catch (Exception $e) { //var_dump($e); $data['success'] = $e->getMessage(); return $data; } return $data; }
/** * 移动文件到目标位置 * @param string $opath 被移动的文件路径 * @param string $path 目标位置(可能是同一api内或跨api,这两种情况分开处理) * @return icosdatas */ public function CopyTo($opath, $path, $iscopy) { static $i = 0; $i++; $oarr = self::parsePath($opath); $client = self::init($opath); $data = self::getMeta($opath); switch ($data['type']) { case 'folder': //创建目录 //exit($arr['path'].'===='.$data['name']); if ($re = IO::CreateFolder($path, $data['name'])) { if (isset($re['error']) && intval($re['error_code']) != 31061) { $data['success'] = $arr['error']; } else { $data['newdata'] = $re['icoarr']; $data['success'] = true; //echo $opath.'<br>'; $contents = self::listFilesAll($client, $opath); $value = array(); foreach ($contents as $key => $value) { if ($value['path'] != $opath) { $data['contents'][$key] = self::CopyTo($value['path'], $re['folderarr']['path']); } $value = array(); } } } else { $data['success'] = 'create folder failure'; } break; default: if ($arr['bz'] == $oarr['bz']) { //同一个api时 $arr = self::parsePath($path . $data['name']); $err = Qiniu_RS_Move($client, $arr['bucket'], $arr['object'], $oarr['bucket'], $oarr['object']); if ($err !== null) { $data['success'] = $err->Code . ':' . $err->Err; } else { $data['newdata'] = self::getMeta($path . $data['name']); $data['success'] = true; } } else { if ($re = IO::multiUpload($opath, $path, $data['name'])) { if ($re['error']) { $data['success'] = $re['error']; } else { $data['newdata'] = $re; $data['success'] = true; } } } break; } return $data; }