$icoarr['fdateline'] = dgmdate($icoarr['dateline']); echo json_encode($icoarr); exit; } $cloud = DB::fetch_first("select * from %t where bz=%s", array('connect', $bz)); if (!($item = C::t($cloud['dname'])->fetch_by_id($id))) { echo json_encode(array('error' => '对象不存在或已被删除')); exit; } $pfid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='desktop'"); $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $item['id'], 'name' => $item['fname'], 'type' => $cloud['type'], 'flag' => $cloud['bz'], 'dateline' => $_G['timestamp'], 'pfid' => $pfid, 'size' => 0, 'gid' => 0, 'ext' => '', 'isdelete' => 0); if ($icoid = DB::result_first("select icoid from %t where oid=%d and uid=%d and type=%s", array('icos', $item['id'], $_G['uid'], $icoarr['type']))) { C::t('icos')->update($icoid, $icoarr); $icoarr['oid'] = $item['fid']; $icoarr['icoid'] = $icoid; } elseif ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1, 1)) { addtoconfig($icoarr); } else { echo json_encode(array('error' => '添加到桌面失败')); exit; } $icoarr['oid'] = $item['fid']; $icoarr['bz'] = ''; $icoarr['img'] = $item['ficon']; $icoarr['fsize'] = formatsize($icoarr['size']); $icoarr['ftype'] = getFileTypeName($icoarr['type'], $icoarr['ext']); $icoarr['fdateline'] = dgmdate($icoarr['dateline']); echo json_encode($icoarr); exit; } include template("addcloud");
$arr = array(); $fid = intval($_GET['fid']); if ($return = C::t('folder')->empty_by_fid($fid)) { if (!isset($return['error'])) { $arr['msg'] = 'success'; } else { $arr['error'] = $return['error']; } } echo json_encode_gbk($arr); exit; } elseif ($do == 'restore') { $icoids = explode(',', trim($_GET['icoid'])); foreach (C::t('icos')->fetch_all($icoids) as $value) { if (C::t('icos')->update($value['icoid'], array('isdelete' => 0))) { addtoconfig($value); } } echo json_encode_gbk(array('msg' => 'success')); exit; } elseif ($do == 'linktodesktop') { if (!$_G['uid']) { exit(json_encode(array('error' => '您还没有登录'))); } $data = array(); $link = trim($_GET['link']); //检查网址合法性 if (!preg_match("/^(http|ftp|https|mms)\\:\\/\\//i", $link)) { $link = 'http://' . $link; } if (!preg_match("/^(http|ftp|https|mms)\\:\\/\\/.{4,300}\$/i", $link)) {
public function FileCopy($icoid, $pfid, $first = true) { global $_G, $_GET; if (!($tfolder = DB::fetch_first("select * from " . DB::table('folder') . " where fid='{$pfid}'"))) { return array('error' => ' 目标位置不存在'); } if ($icoarr = C::t('icos')->fetch($icoid)) { //判断当前文件有没有拷贝权限; if (!perm_check::checkperm('copy', $icoarr)) { return array('error' => ' 没有权限'); } //判断目录目录有无当前类型的添加权限 if (in_array($icoarr['type'], array('folder', 'link', 'video', 'dzzdoc', 'shortcut'))) { if (!perm_check::checkperm_Container($pfid, $icoarr['type'])) { return array('error' => ' 没有权限'); } } elseif (!perm_check::checkperm_Container($pfid, 'newtype')) { return array('error' => ' 没有权限'); } $success = 0; if ($gid = DB::result_first("select gid from " . DB::table('folder') . " where fid='{$pfid}'")) { //判断空间大小 if (!SpaceSize($icoarr['size'], $gid)) { return array('error' => lang('message', 'inadequate_capacity_space')); } } //判断重复 if ($ricoid = self::getRepeatIDByName($icoarr['name'], $pfid, $icoarr['type'] == 'folder' ? true : false)) { //如果目录下有同名文件 if ($icoarr['type'] == 'folder') { $icoarr['name'] = self::getFolderName($icoarr['name'], $pfid); } else { $icoarr['name'] = self::getFileName($icoarr['name'], $pfid); } } switch ($icoarr['type']) { case 'folder': if ($folder = C::t('folder')->fetch($icoarr['oid'])) { $oldfid = $folder['fid']; $oldfolder = $folder; unset($folder['fid']); $folder['uid'] = $_G['uid']; $folder['username'] = $_G['username']; $folder['pfid'] = $pfid; $folder['fname'] = $icoarr['name']; $folder['gid'] = $gid; //$folder['perm']=0; if ($folder['fid'] = C::t("folder")->insert($folder, 1)) { foreach (C::t('icos')->fetch_all_by_pfid($oldfid) as $value) { try { self::FileCopy($value['icoid'], $folder['fid'], false); } catch (Exception $e) { } } $return['folderarr'] = $folder; $icoarr['oid'] = $folder['fid']; $success = 1; } } else { return array('error', lang('message', 'folder_not_exist')); } break; case 'user': $success = 1; break; case 'shortcut': $shortcut = C::t('source_shortcut')->fetch($icoarr['oid']); unset($shortcut['cutid']); if ($cutid = C::t('source_shortcut')->insert($shortcut, 1)) { $icoarr['oid'] = $cutid; $success = 1; } break; case 'app': $success = 1; break; case 'image': if ($image = C::t('source_image')->fetch($icoarr['oid'])) { $opicid = $image['picid']; unset($image['picid']); $image['title'] = $icoarr['name']; $image['uid'] = $_G['uid']; $image['gid'] = $gid; $image['username'] = $_G['username']; if ($image['picid'] = DB::insert('source_image', $image, 1)) { $image['aid'] && C::t('attachment')->addcopy_by_aid($image['aid']); $icoarr['oid'] = $image['picid']; $success = 1; } } else { return array('error', lang('message', 'image_not_exist')); } break; case 'video': if ($video = C::t('source_video')->fetch($icoarr['oid'])) { $video['uid'] = $_G['uid']; $video['gid'] = $gid; unset($video['vid']); $video['title'] = $icoarr['name']; $video['username'] = $_G['username']; if ($video['vid'] = DB::insert('source_video', $video, 1)) { if ($video['cid']) { DB::query("update " . DB::table('cai_video') . " set copys=copys+1 where cid='{$video[cid]}'"); } $icoarr['oid'] = $video['vid']; $success = 1; } } else { return array('error', lang('message', 'video_not_exist')); } break; case 'music': if ($music = C::t('source_music')->fetch($icoarr['oid'])) { unset($music['mid']); $music['uid'] = $_G['uid']; $music['gid'] = $gid; $music['title'] = $icoarr['name']; $music['username'] = $_G['username']; if ($music['mid'] = DB::insert('source_music', $music, 1)) { if ($music['cid']) { DB::query("update " . DB::table('cai_music') . " set copys=copys+1 where cid='{$music[cid]}'"); } $icoarr['oid'] = $music['mid']; $success = 1; } } else { return array('error', lang('message', 'video_not_exist')); } break; case 'link': if ($link = C::t('source_link')->fetch($icoarr['oid'])) { $olink = $link['lid']; unset($link['lid']); $link['uid'] = $_G['uid']; $link['username'] = $_G['username']; $link['title'] = $icoarr['name']; $link['gid'] = $gid; if ($link['lid'] = DB::insert('source_link', $link, 1)) { if ($link['cid']) { DB::query("update " . DB::table('cai_link') . " set copys=copys+1 where cid='{$link[cid]}'"); } if ($link['did']) { C::t('icon')->update_copys_by_did($link['did']); } $icoarr['oid'] = $link['lid']; $success = 1; } } else { return array('error', lang('message', 'link_not_exist')); } break; case 'attach': if ($attach1 = C::t('source_attach')->fetch($icoarr['oid'])) { $oqid = $attach1['qid']; unset($attach1['qid']); $attach1['uid'] = $_G['uid']; $attach['title'] = $icoarr['name']; $attach1['username'] = $_G['username']; $attach1['gid'] = $gid; if ($attach1['qid'] = DB::insert('source_attach', $attach1, 1)) { $attach1['aid'] && C::t('attachment')->addcopy_by_aid($attach1['aid']); $icoarr['oid'] = $attach1['qid']; $success = 1; } } else { return array('error', lang('message', 'attach_not_exist')); } break; case 'document': if ($document = C::t('source_document')->fetch($icoarr['oid'])) { $odid = $document['did']; unset($document['did']); $document['uid'] = $_G['uid']; $document['title'] = $icoarr['name']; $document['username'] = $_G['username']; $document['gid'] = $gid; if ($document['did'] = DB::insert('source_document', $document, 1)) { $document['aid'] && C::t('attachment')->addcopy_by_aid($document['aid']); $icoarr['oid'] = $document['did']; $success = 1; } } else { return array('error', lang('message', 'document_not_exist')); } break; case 'dzzdoc': if ($did = C::t('document')->copy_by_did($icoarr['oid'])) { $icoarr['oid'] = $did; $success = 1; } else { return array('error', '创建Dzz文档失败'); } break; default: $success = 1; } if ($success) { unset($icoarr['icoid']); $icoarr['gid'] = $gid; $icoarr['uid'] = $_G['uid']; $icoarr['username'] = $_G['username']; $icoarr['pfid'] = $pfid; if ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1)) { if ($icoarr['size'] > 0) { SpaceSize($icoarr['size'], $gid, 1); } if (!$first) { addtoconfig($icoarr); } else { $return['icoarr'] = C::t('icos')->fetch_by_icoid($icoarr['icoid']); return $return; } } else { return array('error' => '此类文件不允许复制'); } } } return array('error' => 'copy error'); }
$data['gid'] = $gid; $data['iscopy'] = $iscopy; $icos = $folderids = array(); //分4种情况:a:本地到api;b:api到api;c:api到本地;d:本地到本地; foreach ($icoids as $icoid) { //在目标位置创建 $opath = rawurldecode($icoid); $path = rawurldecode(str_replace(array('_dock_', 'icosContainer_folder_', 'icosContainer_body_'), '', $container)); $return = IO::CopyTo($opath, $path, $iscopy); if (!$iscopy) { $return = IO::DeleteByData($return); } if ($return['success'] === true) { $data['icoarr'][] = $return['newdata']; if (!$tbz) { addtoconfig($return['newdata'], $ticoid); } if ($return['newdata']['type'] == 'folder') { $data['folderarr'][] = IO::getFolderByIcosdata($return['newdata']); } $data['successicos'][$return['icoid']] = $return['newdata']['icoid']; } else { $data['error'][] = $return['name'] . ':' . $return['success']; } } if ($data['successicos']) { $data['msg'] = 'success'; if (isset($data['error'])) { $data['error'] = implode(';', $data['error']); } echo json_encode_gbk($data);
function dzz_check_default() { global $_G, $space; //初始化默认目录 dzz_default_folder_init(); if ($_G['uid'] > 0) { //创建机构部门的快捷方式; dzz_organization_shortcut(); } //处理默认目录类 if ($_G['uid'] > 0) { //游客不生成默认目录到桌面 foreach (C::t('folder')->fetch_all_default_by_uid($_G['uid']) as $value) { $type = str_replace('m:', '', $value['default']); $pfid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='{$type}'"); $sperm = perm_FileSPerm::flagPower($value['flag']); if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$value[fid]}' and flag='{$value[flag]}' and type='folder'")) { C::t('icos')->update($icoid, array('pfid' => $pfid, 'sperm' => $sperm)); } else { $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $value['fid'], 'name' => $value['fname'], 'type' => 'folder', 'flag' => $value['flag'], 'dateline' => $_G['timestamp'], 'pfid' => $pfid, 'sperm' => $sperm); if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) { addtoconfig($icoarr); } } } } if ($_G['uid'] > 0) { $apps = C::t('app_market')->fetch_all_by_notdelete($_G['uid']); } else { $apps = C::t('app_market')->fetch_all_by_default($_G['uid']); } $applist = array(); $screenlist = array(); foreach ($apps as $appid => $app) { $applist[] = $appid; if ($app['position'] == 1) { //开始菜单 /*if($value=DB::fetch_first("select icoid,opuid from ".DB::table('icos')." where uid='{$_G[uid]}' and oid='{$appid}' and type='app'")){ //if(!$value['opuid']) C::t('icos')->delete_by_icoid($icoid); }*/ continue; } else { if ($app['position'] == 2) { //桌面 $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='desktop'"); } else { //dock条 $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='dock'"); } if (!$fid) { continue; } if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$appid}' and type='app'")) { C::t('icos')->update($icoid, array('isdelete' => 0, 'pfid' => $fid)); $screenlist[] = $icoid; } else { $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $appid, 'name' => '', 'type' => 'app', 'dateline' => $_G['timestamp'], 'pfid' => $fid, 'ext' => '', 'size' => 0); if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) { addtoconfig($icoarr); $screenlist[] = $icoarr['icoid']; } } } } if ($_G['uid'] > 0) { if ($applist) { $oapplist = DB::result_first("select applist from " . DB::table('user_field') . " where uid='{$_G[uid]}'"); if ($oapplist) { $oapplist = explode(',', $oapplist); } else { $oapplist = array(); } $newappids = array(); foreach ($applist as $appid) { if (!in_array($appid, $oapplist)) { $oapplist[] = $appid; $newappids[] = $appid; } } if ($newappids) { C::t('app_user')->insert_by_uid($_G['uid'], $newappids); } C::t('user_field')->update($_G['uid'], array('applist' => implode(',', $oapplist))); } } else { C::t('user_field')->update($_G['uid'], array('applist' => implode(',', $applist), 'screenlist' => implode(',', $screenlist))); } return C::t('user_field')->fetch($_G['uid']); }