Blogger Information
Blog 33
fans 0
comment 0
visits 20692
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php对目录和文件操作-2018年8月28日
马聪 15558002279的博客
Original
554 people have browsed it
  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;
    			}
    	}}
    ?>

    运行实例 »

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

Correction status:qualified

Teacher's comments:加上自己的总结 就更好啦!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post