123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?php
- /**
- * 家校考试管理控制器类
- * @author li
- * @date 2019-04-17 10:50:00
- * @company 上海风车教育有限公司.
- */
- class OnlineController extends Controller{
- // 首页
- public function actionIndex(){
- Url::clean();
- $exam_group_id=Req::get('exam_group_id');
- $data['exam_group_id']=$exam_group_id;
- $findInfo = SExamGroup::model()->find('exam_group_id=:eg_id',array('eg_id'=>$exam_group_id));
- //获取考试ID
- $criteria = new CDbCriteria();
- $criteria->select = 'exam_id,exam_group_id';
- $criteria->addCondition("exam_group_id='".$exam_group_id."'");
- $exam_data = Exam::model()->findAll($criteria);
- unset($criteria);
- if($exam_data) {
- foreach ($exam_data as $v) {
- $exam_ids[$v->exam_id] = $v->exam_id;
- }
- }
- $data['schoolId']=$this->schoolId;
- $data['examIds']=$exam_ids;
- $data['examStatus']=$findInfo->status;
- $this->renderPartial('index',$data);
- }
- // 第三方创建答题卡
- public function actionThird(){
- $subjectId=Yii::app()->session['session_duoxueke_subject_id'];
- $this->renderPartial('third',array('subjectId'=>$subjectId));
- }
- // 第三方创建答题卡
- public function actionAnswersheet(){
- $subjectId=Yii::app()->session['session_duoxueke_subject_id'];
- $this->renderPartial('answersheet',array('subjectId'=>$subjectId));
- }
- // 答题卡列表页
- public function actionAnswersheetList(){
- $subjectId=Yii::app()->session['session_duoxueke_subject_id'];
- $this->renderPartial('answersheet_list',array('subjectId'=>$subjectId));
- }
- //上传文件返回文件地址
- public function actionUploadFile(){
- $error['success']=0;
- $uCloudUrl='';
- $config = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", $this->config_json()), true);
- $action=Req::get('action');
- if($action=='config'){
- $result = json_encode($config);
- $result=json_decode($result,true);
- if(isset($result['url']) && !empty($result['url'])){
- $result['url']=Yii::app()->params['WebUrl'].$result['url'];
- }
- $result=json_encode($result);
- /* 输出结果 */
- if (isset($_GET["callback"])) {
- if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
- echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
- } else {
- echo json_encode(array(
- 'state'=> 'callback参数不合法'
- ));
- }
- } else {
- echo $result;
- }
- exit;
- }
- if (empty($_FILES)) {
- $error['message'] = '未找到上传文件!';
- echo json_encode($error);exit();
- }else{
- // 保存上传文件至服务器
- $pathName = dirname(dirname(dirname(__FILE__))).'/upload/tmpDir/ThirdSheet/'. date('Y') .'/'. date('m') . '/';
- if (!file_exists($pathName)) {
- mkdir($pathName, 0777, true);
- }
- $filesName=array();
- if(isset($_FILES['editor_file'])){
- $filesName=$_FILES['editor_file'];
- }elseif(isset($_FILES['upfile'])){
- $filesName=$_FILES['upfile'];
- }
- $extName = substr($filesName['name'],strrpos($filesName['name'],'.'));
- $fileName = uniqid() . $extName;
- if (!move_uploaded_file($filesName['tmp_name'], $pathName.$fileName)) {
- $error['message'] = '上传文件失败!';
- echo json_encode($error);exit();
- }
- $fileSrc = $pathName.$fileName;
- $rename = 'zsyas2/cardonline/'.$this->schoolId.'/'. date('Y') . '/' . date('m') . '/' . date('d').'/'. $fileName;
- $ucloud = new HuaweiCloud();
- $uploadInfo = $ucloud->putFile($rename, $fileSrc);
- if ($uploadInfo['status'] == 0) {
- $error['message'] = '上传文件失败!';
- @unlink($fileSrc);
- echo json_encode($error);exit();
- }else{
- @unlink($fileSrc);
- if(isset($_FILES['upfile'])){
- $error=array(
- "state" => 'SUCCESS',
- "url" => $uploadInfo['url'],
- "title" => $fileName,
- "original" => $filesName['name'],
- "type" => $extName,
- "size" => ''
- );
- echo json_encode($error);exit();
- }
- $error['success']=1;
- $uCloudUrl=$uploadInfo['url'];
- }
- $error['data']=$uCloudUrl;
- echo json_encode($error);exit();
- }
- }
- private function config_json(){
- $json='
- /* 前后端通信相关的配置,注释只允许使用多行方式 */
- {
- /* 上传图片配置项 */
- "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
- "imageFieldName": "upfile", /* 提交的图片表单名称 */
- "imageMaxSize": 2048000, /* 上传大小限制,单位B */
- "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
- "imageCompressEnable": true, /* 是否压缩图片,默认是true */
- "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
- "imageInsertAlign": "none", /* 插入的图片浮动方式 */
- "imageUrlPrefix": "", /* 图片访问路径前缀 */
- "imagePathFormat": "/upload/editor/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
- /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
- /* {time} 会替换成时间戳 */
- /* {yyyy} 会替换成四位年份 */
- /* {yy} 会替换成两位年份 */
- /* {mm} 会替换成两位月份 */
- /* {dd} 会替换成两位日期 */
- /* {hh} 会替换成两位小时 */
- /* {ii} 会替换成两位分钟 */
- /* {ss} 会替换成两位秒 */
- /* 非法字符 \ : * ? " < > | */
- /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
- /* 涂鸦图片上传配置项 */
- "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
- "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
- "scrawlPathFormat": "/upload/editor/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
- "scrawlUrlPrefix": "", /* 图片访问路径前缀 */
- "scrawlInsertAlign": "none",
- /* 截图工具上传 */
- "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
- "snapscreenPathFormat": "/upload/editor/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
- "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
- /* 抓取远程图片配置 */
- "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
- "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
- "catcherFieldName": "source", /* 提交的图片列表表单名称 */
- "catcherPathFormat": "/upload/editor/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- "catcherUrlPrefix": "", /* 图片访问路径前缀 */
- "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
- "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
- /* 上传视频配置 */
- "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
- "videoFieldName": "upfile", /* 提交的视频表单名称 */
- "videoPathFormat": "/upload/editor/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- "videoUrlPrefix": "", /* 视频访问路径前缀 */
- "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
- "videoAllowFiles": [
- ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
- ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
- /* 上传文件配置 */
- "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
- "fileFieldName": "upfile", /* 提交的文件表单名称 */
- "filePathFormat": "/upload/editot/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
- "fileUrlPrefix": "", /* 文件访问路径前缀 */
- "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
- "fileAllowFiles": [
- ".png", ".jpg", ".jpeg", ".gif", ".bmp",
- ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
- ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
- ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
- ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
- ], /* 上传文件格式显示 */
- /* 列出指定目录下的图片 */
- "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
- "imageManagerListPath": "/upload/editor/image/", /* 指定要列出图片的目录 */
- "imageManagerListSize": 20, /* 每次列出文件数量 */
- "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
- "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
- "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
- /* 列出指定目录下的文件 */
- "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
- "fileManagerListPath": "/upload/editor/file/", /* 指定要列出文件的目录 */
- "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
- "fileManagerListSize": 20, /* 每次列出文件数量 */
- "fileManagerAllowFiles": [
- ".png", ".jpg", ".jpeg", ".gif", ".bmp",
- ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
- ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
- ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
- ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
- ] /* 列出的文件类型 */
- }';
- return $json;
- }
- }
|