博主信息
博文 33
粉丝 0
评论 0
访问量 26237
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php对目录和文件操作-2018年8月28日
马聪 15558002279的博客
原创
704人浏览过
  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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学