128 lines
3.8 KiB
PHP
128 lines
3.8 KiB
PHP
<?php
|
|
/**
|
|
* 连接官网在线编辑文档
|
|
*/
|
|
|
|
class rockeditChajian extends Chajian{
|
|
|
|
|
|
protected function initChajian()
|
|
{
|
|
$urs = $this->rock->jm->base64decode('aHR0cDovL29mZmljZS5yb2Nrb2EuY29tLw::');
|
|
$url = getconfig('officebj_url', $urs);
|
|
$this->agentkey = getconfig('officebj_key');
|
|
if(substr($url,-1)!='/')$url.='/';
|
|
$this->updatekel = $url;
|
|
$this->updatekey = $url.'api.php';
|
|
}
|
|
|
|
|
|
public function geturlstr($mod, $act, $can=array())
|
|
{
|
|
$url = $this->updatekey;
|
|
$url.= '?m='.$mod.'&a='.$act.'';
|
|
$url.= '&host='.$this->rock->jm->base64encode(HOST).'&ip='.$this->rock->ip.'&xinhukey='.getconfig('xinhukey').'';
|
|
$url.= '&adminid='.$this->adminid.'';
|
|
$url.= '&agentkey='.$this->agentkey.'';
|
|
foreach($can as $k=>$v)$url.='&'.$k.'='.$v.'';
|
|
return $url;
|
|
}
|
|
|
|
|
|
/**
|
|
* get获取数据
|
|
*/
|
|
public function getdata($mod, $act, $can=array())
|
|
{
|
|
$url = $this->geturlstr($mod, $act, $can);
|
|
$cont = c('curl')->getcurl($url);
|
|
if(!isempt($cont) && contain($cont, 'success')){
|
|
$data = json_decode($cont, true);
|
|
}else{
|
|
$data = returnerror('无法访问,'.$cont.'');
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* post发送数据
|
|
*/
|
|
public function postdata($mod, $act, $can=array())
|
|
{
|
|
$url = $this->geturlstr($mod, $act);
|
|
$cont = c('curl')->postcurl($url, $can);
|
|
if(!isempt($cont) && contain($cont, 'success')){
|
|
$data = json_decode($cont, true);
|
|
}else{
|
|
$data = returnerror('无法访问,'.$cont.'');
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
public function sendedit($id, $admintoken='', $otype=0)
|
|
{
|
|
$frs = m('file')->getone($id);
|
|
if(!$frs)return returnerror('文件不存在');
|
|
|
|
$filepath = $frs['filepath'];
|
|
$filepathout= arrvalue($frs, 'filepathout');
|
|
$onlynum = $frs['onlynum'];
|
|
$recedata = '';
|
|
if(substr($filepath,0,4)!='http' && !file_exists($filepath)){
|
|
if(isempt($filepathout))return returnerror('文件不存在2');
|
|
$filepath = $filepathout;
|
|
$recedata = $filepath;
|
|
}
|
|
|
|
if(isempt($onlynum)){
|
|
$onlynum = md5(''.$this->rock->jm->getRandkey().date('YmdHis').'file'.$id.'');
|
|
m('file')->update("`onlynum`='$onlynum'", $id);
|
|
}
|
|
$stype = '0';//0wps,1onlyoffice
|
|
$urs = m('admin')->getone($this->adminid);
|
|
$barr = $this->getdata('file','change', array(
|
|
'filenum' => $onlynum,
|
|
'optid' => $this->adminid,
|
|
'stype' => $stype,
|
|
'optname' => $this->rock->jm->base64encode($this->adminname),
|
|
'face' => $this->rock->jm->base64encode(m('admin')->getface($urs['face'])),
|
|
));
|
|
//$this->rock->debugs($barr,'rockedit');
|
|
if(!$barr['success'])return $barr;
|
|
$data = $barr['data'];
|
|
$type = $data['type'];
|
|
$gokey = $data['gokey'];
|
|
$gourl = arrvalue($data,'gourl');
|
|
if(isempt($gourl))$gourl = $this->updatekel;
|
|
$bsar = $data;
|
|
if($type=='0'){
|
|
if($recedata=='')$recedata = $this->rock->jm->base64encode(file_get_contents($filepath));
|
|
$barr = $this->postdata('file','recedata', array(
|
|
'data' => $recedata,
|
|
'fileid' => $id,
|
|
'filenum' => $onlynum,
|
|
'fileext' => $frs['fileext'],
|
|
'filename' => $frs['filename'],
|
|
'optid' => $frs['optid'],
|
|
'optname' => $frs['optname'],
|
|
'filesize' => $frs['filesize'],
|
|
'filesizecn'=> $frs['filesizecn'],
|
|
));
|
|
if(!$barr['success'])return $barr;
|
|
$bsar['type'] = '1';
|
|
}
|
|
if($bsar['type']=='1'){
|
|
$url = $gourl.'api.php?m=file&a=goto&filenum='.$onlynum.'&sign='.md5($this->rock->HTTPweb).'';
|
|
$url.= '&optid='.$this->adminid.'';
|
|
$url.= '&gokey='.$gokey.'';
|
|
$url.= '&otype='.$otype.'';
|
|
$url.= '&stype='.$stype.'';
|
|
if($otype==0){
|
|
$callurl = $this->rock->getouturl().'api.php?m=upload&a=upfilevb&fileid='.$id.'&adminid='.$this->adminid.'&token='.$admintoken.'';
|
|
$url.='&callurl='.$this->rock->jm->base64encode($callurl).'';
|
|
}
|
|
$bsar['url'] = $url;
|
|
}
|
|
return returnsuccess($bsar);
|
|
}
|
|
} |