```
/**
* 編輯器上傳圖片
*/
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、插件收集
- 問題記錄集