<?php
defined('IN_PHPCMS') or exit('No permission resources.');
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);
if(param::get_cookie('sys_lang')) {
define('SYS_STYLE',param::get_cookie('sys_lang'));
} else {
define('SYS_STYLE','zh-cn');
}
class attachments {
private $att_db;
function __construct() {
pc_base::load_app_func('global');
$this->upload_url = pc_base::load_config('system','upload_url');
$this->upload_path = pc_base::load_config('system','upload_path');
$this->imgext = array('jpg','gif','png','bmp','jpeg');
$this->userid = $_SESSION['userid'] ? $_SESSION['userid'] : (param::get_cookie('_userid') ? param::get_cookie('_userid') : sys_auth($_POST['userid_flash'],'DECODE'));
$this->isadmin = $this->admin_username = $_SESSION['roleid'] ? 1 : 0;
$this->groupid = param::get_cookie('_groupid') ? param::get_cookie('_groupid') : 8;
//判断是否登录
if(empty($this->userid)){
showmessage(L('please_login','','member'));
}
}
/**
* 常规上传
*/
public function upload() {
$grouplist = getcache('grouplist','member');
if($this->isadmin==0 && !$grouplist[$this->groupid]['allowattachment']) return false;
if($this->isadmin==1) define('IN_ADMIN',true);
pc_base::load_sys_class('attachment','',0);
$module = trim($_GET['module']);
$catid = intval($_GET['catid']);
$siteid = $this->get_siteid();
$site_setting = get_site_setting($siteid);
$site_allowext = $site_setting['upload_allowext'];
$attachment = new attachment($module,$catid,$siteid);
$attachment->set_userid($this->userid);
$a = $attachment->upload('upload',$site_allowext);
if($a){
$filepath = $attachment->uploadedfiles[0]['filepath'];
$fn = intval($_GET['CKEditorFuncNum']);
$this->upload_json($a[0],$filepath,$attachment->uploadedfiles[0]['filename']);
$attachment->mkhtml($fn,$this->upload_url.$filepath,'');
}
}
public function swfupload(){
$grouplist = getcache('grouplist','member');
$siteid = $this->get_siteid();
if(isset($_GET['dosubmit'])){
pc_base::load_sys_class('attachment','',0);
$siteid = param::get_cookie('siteid');//$siteid = get_siteid();
$attachment = new attachment($_POST['module'],$_POST['catid'],$siteid);
$attachment->set_userid($this->userid);
$site_setting = get_site_setting($siteid);
$site_allowext = $site_setting['upload_allowext'];
$aids = $attachment->upload('file',$site_allowext,'','',array($_POST['thumb_width'],$_POST['thumb_height']),$_POST['watermark_enable']);
if($aids[0]) {
$filename= (strtolower(CHARSET) != 'utf-8') ? iconv('gbk', 'utf-8', $attachment->uploadedfiles[0]['filename']) : $attachment->uploadedfiles[0]['filename'];
if($attachment->uploadedfiles[0]['isimage']) {
$res = array(
'status' => 1,
'aid' => $aids[0],
'filepath' => $this->upload_url.$attachment->uploadedfiles[0]['filepath'],
'fileext' => $attachment->uploadedfiles[0]['fileext'],
'isimage' => $attachment->uploadedfiles[0]['isimage'],
'title' => str_replace('.'.$attachment->uploadedfiles[0]['fileext'],'',$filename),
'fileimg' => $this->upload_url.$attachment->uploadedfiles[0]['filepath'],
'filename' => $filename
);
echo json_encode($res);
} else {
$fileext = $attachment->uploadedfiles[0]['fileext'];
if($fileext == 'zip' || $fileext == 'rar') $fileext = 'rar';
elseif($fileext == 'doc' || $fileext == 'docx') $fileext = 'doc';
elseif($fileext == 'xls' || $fileext == 'xlsx') $fileext = 'xls';
elseif($fileext == 'ppt' || $fileext == 'pptx') $fileext = 'ppt';
elseif ($fileext == 'flv' || $fileext == 'swf' || $fileext == 'rm' || $fileext == 'rmvb') $fileext = 'flv';
else $fileext = 'do';
$res = array(
'status' => 1,
'aid' => $aids[0],
'filepath' => $this->upload_url.$attachment->uploadedfiles[0]['filepath'],
'fileext' => $fileext,
'isimage' => $attachment->uploadedfiles[0]['isimage'],
'title' => str_replace('.'.$attachment->uploadedfiles[0]['fileext'],'',$filename),
'fileimg' => file_icon($this->upload_url.$attachment->uploadedfiles[0]['filepath']),
'filename' => $filename
);
echo json_encode($res);
}
exit;
} else {
echo '0,'.$attachment->error();
exit;
}
} else {
if($this->isadmin==0 && !$grouplist[$this->groupid]['allowattachment']) showmessage(L('att_no_permission'));
$args = $_GET['args'];
$authkey = $_GET['authkey'];
if(upload_key($args) != $authkey) showmessage(L('attachment_parameter_error'));
extract(getswfinit($_GET['args']));
$siteid = $this->get_siteid();
$site_setting = get_site_setting($siteid);
$file_size_limit = sizecount($site_setting['upload_maxsize']*1024);
$filetype = str_replace('|',',',$file_types_post);
$att_not_used = param::get_cookie('att_json');
if(empty($att_not_used) || !isset($att_not_used)) $tab_status = ' class="on"';
if(!empty($att_not_used)) $div_status = ' hidden';
$att = $this->att_not_used();
$userid_flash=sys_auth($this->userid, 'ENCODE');
// include $this->admin_tpl('swfupload');
include $this->admin_tpl('webuploader');
}
}
public function crop_upload() {
$pic = version_compare(PHP_VERSION, 5.6, '>=') ? file_get_contents('php://input') : $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($pic)) {
if (isset($_GET['width']) && !empty($_GET['width'])) {
$width = intval($_GET['width']);
}
if (isset($_GET['height']) && !empty($_GET['height'])) {
$height = intval($_GET['height']);
}
if (isset($_GET['file']) && !empty($_GET['file'])) {
$_GET['file'] = str_ireplace(array(';','php'),'',$_GET['file']);
if(is_image($_GET['file'])== false || stripos($_GET['file'],'.php')!==false) exit();
if (strpos($_GET['file'], pc_base::load_config('system', 'upload_url'))!==false) {
$file = $_GET['file'];
$basename = basename($file);
if (strpos($basename, 'thumb_')!==false) {
$file_arr = explode('_', $basename);
$basename = array_pop($file_arr);
}
$fileext = strtolower(fileext($basename));
if (!in_array($fileext, array('jpg', 'gif', 'jpeg', 'png', 'bmp'))) exit();
$new_file = 'thumb_'.$width.'_'.$height.'_'.$basename;
} else {
pc_base::load_sys_class('attachment','',0);
$module = trim($_GET['module']);
$catid = intval($_GET['catid']);
$siteid = $this->get_siteid();
$attachment = new attachment($module, $catid, $siteid);
$uploadedfile['filename'] = basename($_GET['file']);
$uploadedfile['fileext'] = strtolower(fileext($_GET['file']));
if (in_array($uploadedfile['fileext'], array('jpg', 'gif', 'jpeg', 'png', 'bmp'))) {
$uploadedfile['isimage'] = 1;
}
$file_path = $this->upload_path.date('Y/md/');
pc_base::load_sys_func('dir');
dir_create($file_path);
$new_file = date('Ymdhis').rand(100, 999).'.'.$uploadedfile['fileext'];
$uploadedfile['filepath'] = date('Y/md/').$new_file;
$aid = $attachment->add($uploadedfile);
}
$filepath = date('Y/md/');
file_put_contents($this->upload_pat
评论0
最新资源