``` /** * 编辑器上传图片 */ function WSTEditUpload($fromType){ $root = str_replace('/index.php','',\think\Request::instance()->root()); //PHP上传失败 if (!empty($_FILES['imgFile']['error'])) { switch($_FILES['imgFile']['error']){ case '1': $error = '超过php.ini允许的大小。'; break; case '2': $error = '超过表单允许的大小。'; break; case '3': $error = '图片只有部分被上传。'; break; case '4': $error = '请选择图片。'; break; case '6': $error = '找不到临时目录。'; break; case '7': $error = '写文件到硬盘出错。'; break; case '8': $error = 'File upload stopped by extension。'; break; case '999': default: $error = '未知错误。'; } return ['error'=>1,'msg'=>$error]; } $fileKey = key($_FILES); $dir = 'image'; // 编辑器上传图片目录 $dirs = WSTConf("CONF.wstUploads"); //上传目录 if(!in_array($dir, $dirs)){ return json_encode(['error'=>1,'message'=>'非法文件目录!']); } // 上传文件 $file = request()->file($fileKey); if($file===null){ return json_encode(["error"=>1,"message"=>'上传文件不存在或超过服务器限制']); } // 图片验证规则 $validateRule = [ ['fileMime','fileMime:image/png,image/gif,image/jpeg,image/x-ms-bmp','只允许上传jpg,gif,png,bmp类型的文件'], ['fileExt','fileExt:jpg,jpeg,gif,png,bmp','只允许上传后缀为jpg,gif,png,bmp的文件'], ['fileSize','fileSize:2097152','文件大小超出限制'],//最大2M ]; $mediaType = 0; if(input('dir')=='media'){ // 上传类型为视频或音频时,不限制大小 $validateRule = [ ['fileMime','fileMime:video/3gp,video/mp4,video/rmvb,video/mov,video/avi,video/m4v','只允许上传3gp,mp4,rmvb,mov,avi,m4v类型的文件'], ['fileExt','fileExt:3gp,mp4,rmvb,mov,avi,m4v','只允许上传后缀为3gp,mp4,rmvb,mov,avi,m4v的文件'] ]; $mediaType = 1; } $validate = new \think\Validate($validateRule); $data = ['fileMime' => $file, 'fileSize' => $file, 'fileExt'=> $file ]; if (!$validate->check($data)) { return json_encode(['message'=>$validate->getError(),'error'=>1]); } $info = $file->rule('uniqid')->move(ROOT_PATH.'/upload/'.$dir."/".date('Y-m')); if($info){ $filePath = $info->getPathname(); $filePath = str_replace(ROOT_PATH,'',$filePath); $filePath = str_replace('\\','/',$filePath); $name = $info->getFilename(); $imageSrc = trim($filePath,'/'); //图片记录 WSTRecordResources($imageSrc, (int)$fromType, $mediaType); return json_encode(array('error' => 0, 'url' => $root.$filePath)); } return json_encode(["error"=>1,"message"=>$file->getError()]); } ```