文件处理

来源:互联网 发布:四川广电网络全称 编辑:程序博客网 时间:2024/06/05 00:20
文件处理
|----- #Uploads
|               |------  #2015-11-16 (见云盘) 
|
|------ index.html    提交file
|------ upload.php    上传存储文件
|------ lst.php           遍历文件列表 
|------ read.php        查看文件内容



index.html
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
    <form action="2upload.php" method="post" enctype="multipart/form-data">
        <input type="file" name="upfile"/>
        <button type="submit">上传文件</button>
    </form>

</body>
</html>



upload.php     上传文件
<?php
/**
 * Created by PhpStorm.
 * User: ziniu
 * Date: 2015/11/16
 * Time: 15:59
 */
//var_dump($_FILES);

$file_config = array(
    'file_key' => 'upfile',
    'path'=>'./Uploads/',
);
if($_FILES){
    $imgname = $_FILES[$file_config['file_key']]['name'];
    $filetype = pathinfo($imgname, PATHINFO_EXTENSION);// 扩展文件名
    $filename = pathinfo($imgname, PATHINFO_BASENAME ); // 文件名字
    $filename = md5($filename.time());// 加密文件名 防止冲突罢了
    $dir = $file_config['path'].date('Y-m-d').'/';
    if(!is_dir($dir)){// 目录不存在在创建目录
        mkdir($dir);
    }
    $path_url = $dir.$filename.'.'.$filetype;
    $tmp_file = $_FILES[$file_config['file_key']]['tmp_name'];
    if(move_uploaded_file($tmp_file,$path_url)){ // 移动文件到 指定的目录
        echo '成功了....3秒后跳转';
        header("refresh:3;url=./lst.php");
    }else{
        echo '失败了....3秒后跳转';
        header("refresh:3;url=./index.html");
    }
}else{
    echo '你没有任何文件上传....3秒后跳转';
    header("refresh:3;url=/index.html");
}



lst.php    文件列表 
<?php
/**
 * Created by PhpStorm.
 * User: ziniu
 * Date: 2015/11/16
 * Time: 16:35
 */
//echo '文件列表';
$path = './Uploads';
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
 ***********************/
function tree($directory){
    $mydir = dir($directory);  //var_dump($mydir);
    echo "<ul>\n";
    var_dump($mydir);
    while($file = $mydir->read()){
        if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")){
            echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n";
            tree("$directory/$file");

        }elseif(($file!=".") AND ($file!="..")){
            $filetype = pathinfo($file, PATHINFO_EXTENSION);
            if($filetype != 'txt'){
                echo "<li>$file</li>\n";
            }else{
                $path = $directory.'/'.$file;
                echo "<li>$file<a href='./read.php?p=$path'>显示内容</a></li>\n";
            }
        }
    }
    echo "</ul>\n";
    $mydir->close();
}
//开始运行

echo "<h2>目录为粉红色</h2><br>\n";
tree($path);
echo '<a href="./">继续上传</a>';
/***********************
第二种实现办法:用readdir()函数
 ************************/
//function listDir($dir){
//    if(is_dir($dir)){
//        if ($dh = opendir($dir)){
//            while (($file = readdir($dh)) !== false){
//                if((is_dir($dir."/".$file)) && $file!="." && $file!=".."){
//                    echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
//                    listDir($dir."/".$file."/");
//                }else{
//                    if($file!="." && $file!=".."){
//                        echo $file."<br>";
//                    }
//                }
//            }
//            closedir($dh);
//        }
//    }
//}
////开始运行
//listDir($path);


read.php  读取文件
<?php
/**
 * Created by PhpStorm.
 * User: ziniu
 * Date: 2015/11/16
 * Time: 16:57
 */
$path = $_GET['p'];
echo file_get_contents($path); //将整个文件读入一个字符串
echo '<a href="./lst.php">返回列表</a>';


知识点:

pathinfo()
  • [dirname]:返回文件路径中的目录部分
  • [basename]:返回文件路径中文件名的部分
  • [extension]:返回文件路径中文件的类型的部分
0 0
原创粉丝点击