```
/**
* 编辑器上传图片
*/
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()]);
}
```
- PHP收集
- 1、精准获取文件的MIME类型
- 2、获取指定内容的第一张图片做封面
- 3、生成二维码
- 4、HTTP请求(请求微信token有用)
- 5、SQL的安装与卸载、执行
- 6、stdclass 对象转数组
- 7、php调用restfull API
- 8、二维数据排序
- 9、多维数组合并
- 10、API签名与验证
- 11、删除一维数据指定key或者允许
- 12、字符串替换、截取
- 13、返回带数据与状态与状态语的json函数封装
- 14、EXCEL上传下载封装
- 15、循环删除指定目录下的文件与文件夹、创建指定文件夹
- 16、强制把日期或者时间戳转星期几
- 17、检测字符串是否包含某字符串
- 18、获取中文字符拼音首字母
- 19、判断手机、邮箱格式正确否、隐藏手机号码
- 20、TP5把图片、视频、文件上传封装
- 21、生成商品编号/货号/订单号/小票号
- 22、高精度数值添加
- 23、加解密字符串、可逆加解密
- 24、编辑器图片上传验证
- 25、转义单引号
- 26、字符串去重
- 27、Base64加解密
- 28、将空内容设置为特定内容
- 29、判断访问来源
- 30、将字符串转换为时间戳,解决部分服务器时间不能超过2038的问题
- 31、驼峰命名转下划线命名
- 32、写入日志 (使用tp自带驱动记录到runtime目录中
- 33、隐藏敏感字符、隐藏部分字符
- 34、获取全局唯一标识符、生成随机数
- 35、过滤emoji表情
- 36、无限分类 数组转 树形结构
- 37、递归生成分类栏目结构
- 38、判断是否是json字符串
- 39、计算时间差(优化友好时间体验)、格式化月份
- 40、生成缩略图
- 41、敏感词过滤
- 42、获取当前类方法
- 43、取文件目录列表,该方法返回数组
- 44、防XSS注入、SQL盲注入
- JS收集
- 1、获取图片真实宽高
- 2、禁用F12与鼠标右键事件
- 3、安卓播放视频结束出现广告
- 4、TP手机端分页封装
- 5、flex布局,多行最后一行向左排列
- 6、判断移动终端内核
- 7、判断IE浏览器内核
- 8、设置主页与加入收藏
- 9、解决H5微信转发分享特殊符号处理
- CSS收集
- 1、移动IOS的按钮默认样式去除
- 2、超出行数隐藏显示缩略号
- 3、清除浮动
- 4、背景图透明度兼容
- HTML收集
- 1、列表视频
- 小程序
- 1、请求封装
- 2、插件收集
- 问题记录集