| 原文鏈接:http://www.cnblogs.com/itcx/p/4164333.html <form action="3-upload.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="300000000000000" />
    片名:<input type="text" name="name" /><p />
    請(qǐng)上傳大片:<input type="file" name="av" /><p />
    <input type="submit" />
</form>pHp: <?php
    /*echo "<pre>";
    var_dump($_POST);
    echo "</pre>";*/
    
    //1.觀察數(shù)組
    
    /*echo "<pre>";
    var_dump($_FILES);
    echo "</pre>";*/
    
    $file = $_FILES;
    
    //2.判斷是否是post上傳
    /*if(!is_uploaded_file($file['av']['tmp_name'])){
    
        exit("文件非法上傳!");
        
    }*/
    
    //3.判斷文件上傳是否發(fā)生了錯(cuò)誤
    if($file['av']['error']>0){
        switch($file['av']['error']){
        
            case 1:
                exit('超過php.ini當(dāng)中的upload_max_filesize的值');
            case 2:
                exit('超過html表單設(shè)定的MAX_FILE_SIZE的值');
            case 3:
                exit('文件只有部分被上傳');
            case 4:
                exit('文件沒有被上傳');
            case 6:
                exit('找不到臨時(shí)文件夾');
            case 7:
                exit('寫入失??!');
            default:
                exit('發(fā)生未知錯(cuò)誤');
        
        }
    }
    
    //4.判斷文件mime類型
    $mime = $file['av']['type'];
    $mimes = array('image/bmp','image/gif','image/jpeg','image/png','image/x-icon');
    if(!in_array($mime,$mimes)){
    
        exit('文件mime類型不被允許');
    
    }
    
    //5.判斷上傳文件的擴(kuò)展名
    $name = $file['av']['name'];
    
    //獲取擴(kuò)展名
    //1.字符串翻轉(zhuǎn),找最后一個(gè).,分割成數(shù)組,找數(shù)組的第一個(gè)元素,再翻轉(zhuǎn)過來
    //2.直接找最后一個(gè).的位置,通過substr截取
    //3.strrchr
    //4.pathinfo('....',PATHINFO_EXTENSION)
    $ext = pathinfo($name,PATHINFO_EXTENSION);
    
    $exts = array('gif','png','jpeg','jpg','ico','bmp');
    
    if(!in_array($ext,$exts)){
    
        exit('文件擴(kuò)展名不被允許');
    
    }
    
    //6.判斷文件大小
    if($file['av']['size']>8){
    
        exit('文件大小超出范圍,請(qǐng)修改后上傳');
    
    }
    
    //7.建立文件夾,生成新的文件名
    $dir = "./uploads/".date("Y/m/d");//2013/08/08
    if(!file_exists($dir)){
        mkdir($dir,0755,true);//./uploads/2013/08/08
    }
    
    $new_name = md5(time().mt_rand()).".".$ext;
    
    //8.移動(dòng)緩存文件到指定目錄
    if(!move_uploaded_file($file['av']['tmp_name'],$dir."/".$new_name)){
        
        exit("很遺憾!文件上傳失敗!");
    
    }
    
    //9.將以上有用數(shù)據(jù)保存到數(shù)組當(dāng)中
    $info = array('new_name'=>$new_name,'dir'=>$dir,'size'=>$file['av']['size'],'type'=>$mime,'ext'=>$ext);
    
    echo "親!恭喜您!上傳成功啦!";
    
    
    ? 文件上傳類 <?php
    
    function upload(&$info,$up="./uploads",$name='av',$mimes=array('image/gif'),$exts=array('gif'),$size=3000000){
    
        //1.觀察數(shù)組
        $file = $_FILES[$name];
        
        //2.判斷錯(cuò)誤
        if($file['error']>0){
        
            switch($file['error']){
        
                case 1:
                    $info = '超過php.ini當(dāng)中的upload_max_filesize的值';
                    return false;
                case 2:
                    $info = '超過html表單設(shè)定的MAX_FILE_SIZE的值';
                    return false;
                case 3:
                    $info = '文件只有部分被上傳';
                    return false;
                case 4:
                    $info = '文件沒有被上傳';
                    return false;
                case 6:
                    $info = '找不到臨時(shí)文件夾';
                    return false;
                case 7:
                    $info = '寫入失敗!';
                    return false;
                default:
                    $info = '發(fā)生未知錯(cuò)誤';
                    return false;
        
            }
            
        }
    
        //3.判斷是否是post上傳
        if(!is_uploaded_file($file['tmp_name'])){
            $info = "文件非法上傳";
            return false;
        }
    
        //4.判斷mime類型
        if(!in_array($file['type'],$mimes)){
            $info = "文件mime類型不被允許";
            return false;
        }
    
        //5.判斷后綴
        $ext = pathinfo($file['name'],PATHINFO_EXTENSION);
        if(!in_array($ext,$exts)){
            $info = "文件上傳擴(kuò)展名不被允許";
            return false;
        }
    
        //6.判斷大小
        if($file['size']>$size){
            $info = "上傳大小超出指定范圍";
            return false;
        }
        
        //7.新建目錄,新建文件名
        $dir = rtrim($up,"/")."/".date("Y/m/d");
        if(!file_exists($dir)){
            mkdir($dir,0755,true);
        }
        $new_name = md5(time().mt_rand()).".".$ext;
        
        //8.移動(dòng)文件(核心代碼)
        if(move_uploaded_file($file['tmp_name'],$dir."/".$new_name)){
            $info = "親!恭喜您!上傳文件成功!";
            
            //9.返回上傳文件的信息
            return array('name'=>$file['name'],'new_name'=>$new_name,'dir'=>$dir,'size'=>$file['size'],'ext'=>$ext);
        }
    
    }類的調(diào)用: ? 多文件上傳: ? ? 讀取上傳文件 ? 轉(zhuǎn)載于:https://www.cnblogs.com/itcx/p/4164333.html來源:https://www./content-1-327601.html | 
|  |