您的行为将会被记录,请勿上传违规文件
一言:
一言加载中...
true,'message'=>'已移至最上方']); }else echo json_encode(['success'=>false,'message'=>'修改时间失败']); }else echo json_encode(['success'=>false,'message'=>'文件不存在']); exit; } $sltDir='slt/';if(!is_dir($sltDir))mkdir($sltDir,0755,true); function generateThumbnail($filePath,$sltDir){$info=getimagesize($filePath);if(!$info)return false;$fileName=basename($filePath);$sltPath=$sltDir.$fileName;if(file_exists($sltPath)&&filesize($sltPath)>0)return true;$mime=$info['mime'];$srcImg=null;switch($mime){case'image/jpeg':$srcImg=imagecreatefromjpeg($filePath);break;case'image/png':$srcImg=imagecreatefrompng($filePath);break;case'image/gif':$srcImg=imagecreatefromgif($filePath);break;case'image/bmp':$srcImg=imagecreatefrombmp($filePath);break;default:return false;}if(!$srcImg)return false;$srcW=imagesx($srcImg);$srcH=imagesy($srcImg);$newW=200;$newH=round($srcH*($newW/$srcW));$dstImg=imagecreatetruecolor($newW,$newH);imagecopyresampled($dstImg,$srcImg,0,0,0,0,$newW,$newH,$srcW,$srcH);$result=imagejpeg($dstImg,$sltPath,50);imagedestroy($srcImg);imagedestroy($dstImg);return $result;} if($_SERVER['REQUEST_METHOD']==='POST'&&isset($_FILES['image'])){ $uploadDir='uploads/';if(!is_dir($uploadDir))mkdir($uploadDir,0755,true); $fileName=basename($_FILES['image']['name']);$filePath=$uploadDir.$fileName; $allowedImageTypes=['jpg','jpeg','png','gif','bmp'];$allowedVideoTypes=['mp4','avi','mov','wmv','flv','webm','mkv']; $fileExtension=strtolower(pathinfo($fileName,PATHINFO_EXTENSION)); if(!in_array($fileExtension,array_merge($allowedImageTypes,$allowedVideoTypes))){echo json_encode(['success'=>false,'message'=>'不支持的文件类型']);exit;} if(file_exists($filePath)){echo json_encode(['success'=>false,'message'=>'文件已存在']);} else{$success=move_uploaded_file($_FILES['image']['tmp_name'],$filePath);if($success){if(in_array($fileExtension,['jpg','jpeg','png','gif','bmp']))generateThumbnail($filePath,$sltDir);if(file_exists($cacheFile))unlink($cacheFile);}echo json_encode(['success'=>$success,'message'=>$success?'上传成功':'上传失败']);} exit; } $action=isset($_GET['action'])?$_GET['action']:'upload';$mediaType=isset($_GET['type'])?$_GET['type']:'all'; if($action==='cameraupload')$action='cameraupload';if($action==='videoupload')$action='videoupload'; function getMediaList($mediaType,$cacheFile,$cacheTime){global $topFile; if($mediaType==='video'||$mediaType==='all'){$result=scanDirectory($mediaType);} else{if(file_exists($cacheFile)&&(time()-filemtime($cacheFile))<$cacheTime){$cachedData=file_get_contents($cacheFile);$data=json_decode($cachedData,true);if($data!==null)$result=$data;else $result=scanDirectory($mediaType);} else{$result=scanDirectory($mediaType);if($mediaType==='image')file_put_contents($cacheFile,json_encode($result));}} $topNames=file_exists($topFile)?array_map('trim',file($topFile,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)):[]; $topItems=[];$otherItems=[];foreach($result as $item){if(in_array($item['name'],$topNames))$topItems[]=$item;else $otherItems[]=$item;} $sortedTop=[];foreach($topNames as $name){foreach($topItems as $item){if($item['name']===$name){$sortedTop[]=$item;break;}}} $result=array_merge($sortedTop,$otherItems);foreach($result as &$item){$item['isTop']=in_array($item['name'],$topNames);}return $result; } function scanDirectory($mediaType){$d='uploads/';$i=[];if(is_dir($d)){$f=scandir($d);foreach($f as $p){if($p==='.'||$p==='..')continue;$fp=$d.$p;if(is_file($fp)){$fileExtension=strtolower(pathinfo($fp,PATHINFO_EXTENSION));$allowedImageTypes=['jpg','jpeg','png','gif','bmp'];$allowedVideoTypes=['mp4','avi','mov','wmv','flv','webm','mkv']; if(in_array($fileExtension,$allowedImageTypes)||in_array($fileExtension,$allowedVideoTypes)){$fileType=in_array($fileExtension,$allowedVideoTypes)?'video':'image';if($mediaType==='all'||$mediaType===$fileType){$i[]=['path'=>$fp,'name'=>$p,'mtime'=>filemtime($fp),'type'=>$fileType,'size'=>filesize($fp)];}}}}}usort($i,function($a,$b){return $b['mtime']-$a['mtime'];});return $i;} if(isset($_GET['action'])&&$_GET['action']==='traffic'){header('Content-Type: application/json');echo json_encode(['traffic'=>0,'speed'=>0]);exit;} if(isset($_GET['action'])&&$_GET['action']==='genthumb'&&isset($_GET['file'])){$fileName=preg_replace('/[^a-zA-Z0-9._-]/','',$_GET['file']);$filePath='uploads/'.$fileName;$sltPath='slt/'.$fileName;if(file_exists($filePath)&&(!file_exists($sltPath)||filesize($sltPath)===0)){$result=generateThumbnail($filePath,$sltDir);header('Content-Type: application/json');echo json_encode(['success'=>$result,'path'=>$sltPath]);}else{header('Content-Type: application/json');echo json_encode(['success'=>false,'message'=>'文件不存在或缩略图已存在']);}exit;} if(isset($_GET['action'])&&$_GET['action']==='refreshcache'&&isset($_GET['type'])){$mediaType=$_GET['type'];if($mediaType==='image'){if(file_exists($cacheFile))unlink($cacheFile);}header('Location: ?action=view&type='.$mediaType);exit;} ?>
您的行为将会被记录,请勿上传违规文件
一言:
一言加载中...
一言:
一言加载中...