mweblogin(0, false); $this->officedocx = ',doc,docx,xls,xlsx,ppt,pptx,'; } //文档预览的 public function fileviewerAction() { $id = (int)$this->get('id','0'); $fobj = m('file'); $frs= $fobj->getone($id); if(!$frs)exit('文件的记录不存在了1'); $type = $frs['fileext']; $filepath = $frs['filepath']; $filepathout= arrvalue($frs, 'filepathout'); if(substr($filepath, 0,4)!='http' && isempt($filepathout) && !file_exists($filepath))exit('文件不存在了2'); $types = ','.$type.','; if(contain($this->officedocx, $types)){ $filepath = $frs['pdfpath']; if(isempt($filepath)){ $this->topdfshow($frs, 1); return; } if(!file_exists($filepath)){ $this->topdfshow($frs, 1); return; }else{ $exta = substr($filepath, -4); if($exta=='html')$this->rock->location($filepath); } }else if($type=='mp4' || $type=='mp3'){ $this->displayfile = ''.P.'/public/fileopen_mp4.html'; }else if($fobj->isyulan($type)){ $content = ''; if(file_exists($filepath)){ $content = file_get_contents($filepath); if(substr($filepath,-6)=='uptemp')$content = base64_decode($content); $bm = c('check')->getencode($content); if(!contain($bm, 'utf')){ $content = @iconv($bm,'utf-8', $content); } }else{ if(!isempt($filepathout)){ return $this->getdstr($frs); } } $this->smartydata['content'] = $content; $this->smartydata['fileext'] = $type; $this->smartydata['filesizecn'] = $frs['filesizecn']; $this->displayfile = ''.P.'/public/fileopen.html';//直接打开文件 }else if($type=='pdf'){ if(!isempt($filepathout) && !file_exists($filepath)){ return $this->getdstr($frs); } }else{ $this->topdfshow($frs,0); return; } $str = 'mode/pdfjs/web/viewer.css'; if(!file_exists($str))exit('未安装预览pdf插件,不能预览该文件,可到信呼官网下查看安装方法,查看帮助?。'); $this->smartydata['filepath'] = $this->jm->base64encode($filepath); $this->smartydata['filepaths']= $filepath; $this->smartydata['filename'] = $frs['filename']; $str = 'mode/pdfjs2/viewer.html'; //exit($this->rock->HTTPweb); if(!$this->displayfile && file_exists($str) && !contain($this->rock->web,'MSIE') && !contain($this->rock->HTTPweb,'Chrome/5')){ if(contain($this->rock->HTTPweb, 'XINHUOAAPP IOS'))$str=''; $this->displayfile = $str; } $fobj->addlogs($id,0);//记录预览记录 } private function getdstr($frs) { $fenz = (int)(floatval($frs['filesize'])/(1024*150)); if($fenz<5)$fenz = 5; c('rockqueue')->senddown($frs['id']); return ' '.$frs['filename'].'('.$frs['filesizecn'].')等待从远程文件下载('.$fenz.')...'; } private function topdfshow($frs, $lx=0) { $officeyl = getconfig('officeyl','0'); if($lx==1){ if($officeyl=='2' || $officeyl=='3'){//用微软文档服务 $filepath = $frs['filepath']; if(substr($filepath, 0,4)!='http'){ $filepath = ''.getconfig('outurl',URL).''.$filepath.''; } $filepathout= arrvalue($frs, 'filepathout'); if(!isempt($filepathout))$filepath = $filepathout; $url = 'https://view.officeapps.live.com/op/view.aspx?src='.urlencode($filepath).''; //if($officeyl=='3')$url = 'https://docview.mingdao.com/op/view.aspx?src='.urlencode($filepath).''; $this->rock->location($url); return; } if($officeyl=='5'){ $url = 'index.php?a=fileedit&m=public&id='.$frs['id'].'&otype=1'; $this->rock->location($url); return; } } //转pdf预览 if($officeyl=='0' || $officeyl=='1'){ if(contain($this->officedocx, ','.$frs['fileext'].',')){ $filepathout= arrvalue($frs, 'filepathout'); if(!isempt($filepathout) && !file_exists($frs['filepath'])){ $str = $this->getdstr($frs); exit($str); } } } $this->displayfile = ''.P.'/public/filetopdf.html'; $this->smartydata['frs'] = $frs; $this->smartydata['ismobile'] = $this->rock->ismobile()?'1':'0'; } /** * 请求转化 */ public function changetopdfAjax() { $id = (int)$this->get('id','0'); return c('xinhuapi')->officesend($id); } /** * 获取状态 */ public function officestatusAjax() { $id = (int)$this->get('id','0'); return c('xinhuapi')->officestatus($id); } /** * 获取状态 */ public function officedownAjax() { $id = (int)$this->get('id','0'); return c('xinhuapi')->officedown($id); } /** * 第三方编辑调用 */ public function fileeditAction() { $id = (int)$this->get('id','0'); $otype = (int)$this->get('otype','0'); $this->smartydata['id'] = $id; $this->smartydata['otype'] = $otype; $urlbj = getconfig('officebj_url'); //说明是自己部署编辑平台用旧的页面 if(!isempt($urlbj) && !contain($urlbj,'rockoa.com') && getconfig('systype') != 'dev') $this->displayfile = ''.P.'/public/tpl_public_fileedit_old.html'; } /** * 地址跳转 */ public function gotoAction() { $url = $this->get('url'); if(!$url)return 'urlerror'; $url = urldecode($url); //return $url; $this->rock->location($url); } }