Blogger Information
Blog 21
fans 0
comment 0
visits 18609
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件操作\目录操作\文件相关魔术常量\文件上传—2018年8月29日23时51分
耗子的博客
Original
735 people have browsed it

本章节学习了文件的基本操作(创建\追加\删除\改名\移动等)、目录的操作、文件的上传

个人本章节学习只能叫理解了,还需要多听视频和写代码加深了解(下面学习代码是参考老师的文件边听边输入的)


实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>一、编程: 文件上传与检测</title>
</head>
<body>

<h2 style='color: green'>一、编程: 文件上传与检测</h2>
<hr>

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST" enctype="multipart/form-data">
<fieldset>
    <legend>文件上传</legend>
    <p><strong>选择文件:</strong><input type="file" name="upload"></p>
</fieldset>
    <p align="center"><button type="submit" name="submit">上传</button></p>
</form>

<?php
//1-检测请求的类型是否为POST,如果不是提升提交的类型不正确(get只能上传小文件)
//$_SERVER['REQUEST_METHOD'] 获取提交的类型
if ($_SERVER['REQUEST_METHOD']=='POST')
{
//如果是POST执行以下代码
   //检测是否有上传的文件
   //isset($_FILES['upload'] 获取文件是否有选择
    if (isset($_FILES['upload']))
    {
    //检测允许上传的文件类型
        //定义可上传的文件个是类型
        $allow=array('image/jpg','image/jpeg','image/bmp','image/png');
        $filesType=$_FILES['upload']['type'];//上传文件的类型获取

        //检查上传的类型是否为上面几种
        if (in_array($filesType,$allow))
        {
            //将文件先移动到临时目录
            //$_FILES['upload']['tmp_name'];//上传文件的临时目录及文件名
            //$_FILES['upload']['name'];//上传实际目录及文件名称
            if (move_uploaded_file($_FILES['upload']['tmp_name'],"upload/{$_FILES['upload']['name']}"))
            {
            //上传成功
                echo "<script>alert('文件上传成功!')</script>";
        }
//            echo "<script>alert('没有可上传的文件')</script>";
        }else
            {
            //上传格式不正确提示
            echo "<script>alert('仅允许上传jpg bmp jpeg png格式的文件')</script>";
        }
    }

    //对上传错误进行处理//获取上传错误记录
    if ($_FILES['upload']['error'] > 0 ) {
        echo '<p>错误原因是:';

        switch ($_FILES['upload']['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;
        }
        echo '</p>';
            //保险起见,最好把创建的临时文件删除,当然系统也会在结束会话时自动清空
			if (file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])) {
				unlink($_FILES['upload']['tmp_name']);
			}
		}
	} else {
		echo '您还没有选择上传的文件或出现其它未知错误!';
	}

?>
</body>
</html>

运行实例 »

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

实例

<?php
echo '<h2 style="color: green">二、 目录遍历</h2>';
echo '<hr>';


//目录操作

//1.传统的过程函数  opdir(),readdir(),closedir()
//2.目录扫描器  scandir()


//1.传统目录操作,打开目录

echo "<h4>1.传统的过程函数 opdir()</h4>";
$dir=opendir('../') or die('目录打开失败!');//当前目录上级下面的180828
while (false !=($file=readdir($dir)))  //遍历目录输出目录 及 文件
{
    print $file.'<br>';
}

//$dir=opendir('../') or die('目录打开失败!');
//while (false !=($file=readdir($dir)))  //遍历目录输出目录 及 文件
//{
//    print nl2br( $file ."\n"); //使用nl2br 在字符串中的新行(\n)之前插入换行符
//}

//输出内容去掉.
echo '<hr>';

$dir=opendir('../') or die('目录打开失败!');
while (false !=($file=readdir($dir)))  //遍历目录输出目录 及 文件
{
    if ($file !="." && $file !=".."){
        print nl2br( $file ."\n"); //使用nl2br 在字符串中的新行(\n)之前插入换行符
    }
}


echo '<hr>';
echo "<h4>2.目录扫描器 scandir()</h4>";

$fileArr=scandir('../');
foreach ($fileArr as $file)
{
    if ($file !="." && $file !=".."){
        print  nl2br($file."\n");
    }
}

运行实例 »

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



1、文件操作:打开文件、操作文件(读写追加等)、 关闭文件

2、目录遍历:传统过程函数 opendir()、目录扫描器 scandir()

3、分解文件名:获取文件名、获取目录名、pathinfo():将目录名,文件名,扩展或解析到一个数组中


php中没有提供将这三个部分组成一个完整文件名的函数

因为windows与unix上的目录分隔符不同

windows是正斜线:/ , unix/linux上的是反斜线\

所以系统提供一个常量:DIRECTORY_SEPARATOR,可以根据系统自动确定路径分隔符类型



删除文件:unlink(file)

复制文件:copy(old, new) 

文件重命名:rename(old,new)

移动文件:rename(old,new)


创建目录: mkdir(dirname)

删除目录: unlink('admin');


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