PHP文件操作功能函数大全

PHP文件操作功能函数大全

<?php
	/* 转换字节大小 */
	function transByte($size){
		$arr=array("B","KB","MB","GB","TB","EB");
		$i=0;
		while($size>=1024){
			$size/=1024;
			$i++;
		}
		return round($size,2).$arr[$i];
	}

	/* 检测文件名称是否合法 */
	function checkFilename($filename){
		$pattern = "/[\/,\*,<>,\?\|]/";
		if(preg_match($pattern,$filename)){
			return false;
		}else{
			return true;
		}
	}
	
	/* 创建文件 */
	function createFile($filename){
		if(checkFilename($filename)){
			//检测当前目录下是否存在同名的文件
			if(!file_exists($filename)){
				//通过touch($filename)来创建
				if(touch($filename)){
					$mes="文件创建成功";
				}else{
					$mes="文件创建失败";
				}
			}else{
				$mes="文件已经存在,请重新命名后创建";
			}
		}else{
			$mes="非法文件名";
		}
		return $mes;
	}
	
	/* 重命名文件 */
	function renameFile($oldname,$newname){
		//验证文件名的合法性
		if(checkFilename($newname)){
			//检测当前目录下是否存在同名的文件
			$path=dirname($oldname);
			if(!file_exists($path."/".$newname)){
				//进行重命名
				if(rename($oldname,$path."/".$newname)){
					$mes="重命名成功";
				}else{
					$mes="重命名失败";
				}
			}else{
				$mes="存在同名文件,请重新命名";
			}
		}else{
			return $mes="非法文件名";
		}
		return $mes;
	}

	/* 删除文件 */
	function delFile($filename){
		if(unlink($filename)){
			$mes="文件删除成功";
		}else{
			$mes="文件删除失败";
		}
		return $mes;
	}

	/* 下载文件操作 */
	function downFile($filename){
		header("Content-disposition:attachment;filename=".basename($filename));
		header("Content-length:".filesize($filename));
		readfile($filename);
	}
	
	/* 复制文件 */
	function copyFile($filename,$dstname){
		if(file_exists($dstname)){
			if(!file_exists($dstname."/".basename($filename))){
				if(copy($filename,$dstname."/".basename($filename))){
					$mes="文件复制成功";
				}else{
					$mes="文件复制失败";
				}
			}else{
				$mes="存在同名文件";
			}
		}else{
			$mes="目标目录不存在";
		}
		return $mes;
	}
	
	/* 剪切文件 */
	function cutFile($filename,$dstname){
		if(file_exists($dstname)){
			if(!file_exists($dstname."/".basename($filename))){
				if(rename($filename,$dstname."/".basename($filename))){
					$mes="文件剪切成功";
				}else{
					$mes="文件剪切失败";
				}
			}else{
				$mes="存在同名文件";
			}
		}else{
			$mes="目标目录不存在";
		}
		return $mes;
	}
	
	/* 上传文件 */
	function uploadFile($fileInfo,$path,$allowExt=array("gif","jpeg","jpg","png","txt"),$maxSize=10485760){
		//判断错误号
		if($fileInfo['error']==UPLOAD_ERR_OK){
			//文件是否是通过HTTP POST方式上传上来的
			if(is_uploaded_file($fileInfo['tmp_name'])){
				//上传文件的文件名,只允许上传jpeg|jpg、png、gif、txt的文件
				//$allowExt=array("gif","jpeg","jpg","png","txt");
				$ext=getExt($fileInfo['name']);
				$uniqid=getUniqidName();
				$destination=$path."/".pathinfo($fileInfo['name'],PATHINFO_FILENAME)."_".$uniqid.".".$ext;
				if(in_array($ext,$allowExt)){
					if($fileInfo['size']<=$maxSize){
						if(move_uploaded_file($fileInfo['tmp_name'], $destination)){
							$mes="文件上传成功";
						}else{
							$mes="文件移动失败";
						}
					}else{
						$mes="文件过大";
					}
				}else{
					$mes="非法文件类型";
				}
			}else{
				$mes="文件不是通过HTTP POST方式上传上来的";
			}
		}else{
			switch($fileInfo['error']){
				case 1:
					$mes="超过了配置文件的大小";
					break;
				case 2:
					$mes="超过了表单允许接收数据的大小";
					break;
				case 3:
					$mes="文件部分被上传";
					break;
				case 4:
					$mes="没有文件被上传";
					break;
			}
		}
		return $mes;
	}
?>

  

posted @ 2016-09-04 17:20  Yxh_blogs  阅读(1098)  评论(0编辑  收藏  举报