PHP中怎么实现一个上传类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<?php classupLoad { functioncreateHtml($info,$fileName) { } functiondownLoad() {} functioninit($fileField,$length='') { $files=$_FILES[$fileField]; //用户名需要改动,根据自己的实际情况做改动 $userName='sanshi'; $fileName=$files['name']; $fileType=$files['type']; $fileTemp=$files['tmp_name']; $fileSize=empty($length)?($files['size']+10):$length; $fileError=$files['error'];//这块也许php4中没有 //改为 //if($this->_isType($fileName)||$this->_isBig($length )) if(!$this->_isType($fileName)||$this->_isBig($length )||$fileError!=0) { //print_r($files); returnfalse; }else{ $path=$this->_createDir($userName);//取得路径 $createFileName=$userName."_".time();//设置当前文件名 $createFileType=$this->getFileType($fileName);//设置文件类别 return@move_uploaded_file($fileTemp,$path.$createFileName.'.'.$createFileType)?true:false; } } function_isBig($length) { $bigest=''; return$big>$bigest?true:false; } functiongetFileType($fileName) { returnend(explode('.',$fileName)); } function_isType($fileName,$method='false',$postFix=2) { //设置类别数组 $type=array('jpeg', 'gif', 'bmp', 'exe'); $fileName=strtolower($fileName); $fileTypeArray=explode('.',$fileName); $fileType=end($fileTypeArray); //判断是否有一个文件有多个后缀 if($method) { if(count($fileTypeArray)>(is_int($postFix)?$postFix:2)) { returnfalse; } } returnin_array($fileType,$type); } function_createDir($userName) { $root=''; $pathSign=DIRECTORY_SEPARATOR; $y=date('Y').$pathSign; $m=date('m').$pathSign; $d=date('d').$pathSign; $path=$root.$y.$m.$d.$userName; $dirArray=explode($pathSign,$path); $tempDir=''; foreach($dirArrayas$dir) { $tempDir.=$dir.$pathSign; $isFile=file_exists($tempDir); clearstatcache(); if(!$isFile&&!is_dir($tempDir)) { @mkdir($tempDir,0755); } } return$path.$pathSign; } function_isDel($dirName) { //注意upLoadDir,一定要与真正使用目录相对应 $upLoadDir=''; $upLoadDir=preg_replace('/\\//','\/',$upLoadDir); $format="/^{$upLoadDir}/"; returnpreg_match($format,$dirName); } functiondelFile($fileName) { $cur_dir=dirname(trim($fileName)); if($this->_isDel($cur_dir)) { return@unlink($fileName)?true:false; }else{ returnfalse; } } functiondelDir($dirName) { if($this->_isDel($dirName)&&is_dir($dirName)) { return@rmdir($dirName)?true:false; }else{ returnfalse; } } } ?> <?php //使用 ?>
关于PHP中怎么实现一个上传类问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。