PHP之上传文件upload.php

<?php
    print_r($_FILES);
        //获取上传文件信息
        $upFile=$_FILES['myfile'];
        $path="uploads/";
        $typeList=array("image/jpg","image/png","text/html","application/zip"); //定义允许的类型
        if($upFile["error"]>0){
                switch ($upFile["error"]){//获取错误信息
                    case 1:
                                $info="上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值";
                        break;
                    case 2:
                                $info="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";       
                        break;
                    case 3:
                                $info="文件并未完全上传,请再次尝试!文件只有部分被上传";
                        break;
                    case 4:
                                $info="未选择上传文件,没有文件被上传";
                        break;
                        case 6:
                                $info="找不到临时文件夹";
                        break;
            case 7:                     
                                $info="文件写入失败";
                        break;
            case 8:
                                $info="由于PHP的扩展程序中断了文件上传";
                        break;
                }die("上传文件错误,原因:" .$info);
        }
        //过滤上传文件大小
        if($upFile["size"]>2*1024*1024){
                die("上传文件大小超出限制");
        }
        //过滤文件类型
        if(!in_array($upFile["type"], $typeList)){
                die("上传文件类型非法" .$upFile["type"]);
        }
        //上传文件后对文件名进行定义
        $fileinfo=pathinfo($upFile["name"]);//解析上传文件名字
        do{
                $newfile=date("YmdHis").rand(1000, 9999).".".$fileinfo["extension"];
        }while(file_exists($path.$newfile));
        //判断是否是一个上传的文件
        if(is_uploaded_file($upFile["tmp_name"])){
                //执行文件上传
                if(move_uploaded_file($upFile["tmp_name"], $path.$newfile)){
                        echo "文件上传成功";
                }else{
                        die("上传文件失败");
                }
        }else{
                die("不是一个上传文件");
        }
?>