博客列表 >php对目录和文件操作-2018年8月28日

php对目录和文件操作-2018年8月28日

马聪 15558002279的博客
马聪 15558002279的博客原创
2018年08月29日 17:13:14553浏览
  1. 遍历目录和上传文件代码:


  2. 实例

    <?php
    	$dir = "dir";
    	//创建一个目录,后面使用
    	$list = range("a", "f");
    	foreach ($list as $v) {
    		$a=10;
    		for ($i=0; $i < 5; $i++) { 
    			for ($j=0; $j < $i; $j++) { 
    				$dir1 =  $dir."/".$v."/"."$i"."/".$j;
    				if(!file_exists($dir1)){
    					mkdir($dir1,0777,true);
    				}
    				if($j%2){
    					$fp = fopen($dir1."/{$j}.html","w+");
    					fwrite($fp,$dir1);
    					fclose($fp);
    				}
    			}
    		}
    	}
    	//老方式遍历文件夹
    	// fn($dir);
    	// function fn($dir){
    	// 		$res = opendir($dir);
    	// 		while ($file = readdir($res)) {
    	// 			if ($file != "." && $file != "..") {      
    	// 				$re_dir = $dir."/".$file;
    	// 				if(is_dir($dir."/".$file)){
    	// 					fn($re_dir,0);
    	// 					$level = count(explode("/",dirname($re_dir)))-1;
    	// 					echo (str_repeat("-",$level*10)).$re_dir."<br>";
    	// 				}else{
    	// 					$level = count(explode("/",dirname($re_dir)))-1;
    	// 					echo "存在文件".(str_repeat("-",$level*10)).$dir."/".$file."<br>";
    	// 				}
    	// 			}
    	// 		}
    	// }
    	//数组方式遍历文件夹
    	fn2($dir);//调用函数传入路径
    	function fn2($dir){
    		$arr = scandir($dir);//路径下内容,赋值给$arr数组
    		foreach ($arr as $v) {//遍历数组
    			if ($v != "." && $v != "..") { //判断是否为. ..     
    				$re_dir = $dir."/".$v;
    				if(is_dir($re_dir)){//判断是否是路径
    					fn2($re_dir);//递归调用
    					$level = count(explode("/",dirname($re_dir)))-1;//根据目录深度生成数字
    					echo (str_repeat("-",$level*10)).$v."<br>";//打印出目录名
    				}else{
    					$level = count(explode("/",dirname($re_dir)))-1;
    					echo "存在文件".(str_repeat("-",$level*10)).$dir."/".$v."<br>";
    				}
    			}
    		}
    	}
    ?>
    文件上传
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST" enctype="multipart/form-data">
    	<fieldset>
    		<legend align="center">文件上传</legend>
    		<p><strong>选择文件:</strong><input type="file" name="pic"></p>
    	</fieldset>	
    	<p align="center"><button type="submit" name="submit" >上传</button></p>
    </form>
    
    <?php
    	//判断是否是post上传
    	if ($_SERVER['REQUEST_METHOD'] =="POST") {
    		//判断文件是否为空
    		if(isset($_FILES['pic'])&&$_FILES['pic']['size']!=0){
    			//设置允许上传的文件类型
    			$allow = ['image/jpg','image/jpeg', 'image/png','image/gif'];
    			if (in_array($_FILES['pic']['type'], $allow)) {
    				//创建文件上传目录
    				$upload = "dir/upload/".date("Ymd")."/";
    				if(!file_exists($upload)){
    					mkdir($upload,0777,true);
    				}
    				if (move_uploaded_file($_FILES['pic']['tmp_name'],$upload.time().".png")){
    					//上传成功
    					echo "<script>alert('文件上传成功')</script>";
    				} 
    			}else {
    					//提示格式不对
    					echo "<script>alert('仅允许上传jpg和png格式的图片');</script>";
    			}
    		}
    		//对上传错误进行处理
    		if ($_FILES['pic']['error'] > 0 ) {
    			echo '<p>错误原因是:<strong>';
    
    			switch ($_FILES['pic']['error']) {
    				case 1:
    					echo '文件超过了php.ini配置中设置的大小';
    					break;
    				case 2:
    					echo '文件超过了表单中常量设置的大小';
    					break;
    				case 3:
    					echo '仅有部分文件被上传';
    					break;
    				case 4:
    					echo '没有文件被上传';
    					break;
    				case 6:
    					echo '没有可用的临时文件夹';
    					break;
    				case 7:
    					echo '磁盘已满,写入失败';
    					break;
    				case 8:
    					echo '上传意外中止';
    					break;
    				
    				default:
    					echo '系统未知错误';
    					break;
    			}
    	}}
    ?>

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议