国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home php教程 PHP源碼 php 多文件上傳

php 多文件上傳

May 25, 2016 pm 04:58 PM

法一:當(dāng)多文件上傳表單中多個上傳文件的name屬性為“pic[]”形式時,也即表單為這種形式。

// 多文件上傳
function multifile_upload()
{
 
//1.獲取要上傳文件的信息
$up_info=$_FILES['pic'];
$ob_path="images_c";
$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png"); //定義運行的上傳文件類型
 
    for($i=0;$i<count($up_info[&#39;name&#39;]);$i++)
    { //foreach 循環(huán)處理多個文件上傳
        //2.判斷文件是否上傳錯誤
        if($up_info[&#39;error&#39;][$i]>0){
 
            switch($up_info[&#39;error&#39;][$i]){
 
                case 1:
 
                    $err_info="上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值";
 
                    break;
 
                case 2:
 
                    $err_info="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值";
 
                    break;
 
                case 3:
 
                    $err_info="文件只有部分被上傳";
 
                    break;
 
                case 4:
 
                    $err_info="沒有文件被上傳";
 
                    break;
 
                case 6:
 
                    $err_info="找不到臨時文件夾";
 
                    break;
 
                case 7:
 
                    $err_info="文件寫入失敗";
 
                    break;
 
                default:
 
                    $err_info="未知的上傳錯誤";
 
                    break;
 
            }
 
            continue($err_info);
 
        }
 
        //3.判斷文件上傳的類型是否合法
 
        if(!in_array($up_info[&#39;type&#39;][$i],$typelist)){
 
            continue(&#39;文件類型錯誤!&#39;.$up_info[&#39;type&#39;][$i]);
 
        }
 
        //4.上傳文件的大小過濾
 
        if($up_info[&#39;size&#39;][$i]>1000000){
 
            continue(&#39;文件大小超過1000000&#39;);
 
        }
 
        //5.上傳文件名處理
 
        $exten_name=pathinfo($up_info[&#39;name&#39;][$i],PATHINFO_EXTENSION);
 
        do{
 
            $main_name=date(&#39;YmHis&#39;.&#39;--&#39;.rand(100,99999));
 
            $new_name=$main_name.&#39;.&#39;.$exten_name;
 
        }while(file_exists($to_path.&#39;/&#39;.$new_name));
 
        //6.判斷是否是上傳的文件,并執(zhí)行上傳
 
        if(is_uploaded_file($up_info[&#39;tmp_name&#39;][$i])){
 
            if(move_uploaded_file($up_info[&#39;tmp_name&#39;][$i],$ob_path.&#39;/&#39;.$new_name)){
 
                 // echo &#39;文件上傳成功!&#39;;
                $img[]=$new_name;
 
            }else{
 
                echo &#39;上傳文件移動失敗!&#39;;
 
            }
 
        }else{
 
            echo &#39;文件不是上傳的文件&#39;;
 
        }
 
    } //for循環(huán)的括號
    return $img;
}
 
 
<form action="" method="post" enctype="multipart/form-data">
 
<input type="hidden" name="MAX_FILE_SIZE" value="">
 
<input type="file" name="pic[]" /><br><br>
 
<input type="file" name="pic[]" /><br><br>
 
<input type="file" name="pic[]" /><br><br>
 
<input type="file" name="pic[]" /><br><br>
 
<input type="submit" value="upload"/>
 
</form>
 
// 方法一:當(dāng)多文件上傳表單中多個上傳文件的name屬性為“pic[]”形式時,也即表單為這種形式。

方法二:當(dāng)多文件上傳表單中多個上傳文件的name屬性為“pic,text,doc,pdf”形式時

//1.獲取要上傳文件的信息
 
$up_info=$_FILES;
 
$ob_path="..\system";
 
$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png"); //定義運行的上傳文件類型
 
foreach($up_info as $k_name=>$value){ //用foreach循環(huán) 處理多個文件的上傳
 
    //2.判斷文件是否上傳錯誤
 
    if($up_info[$k_name][&#39;error&#39;]>0){
 
        switch($up_info[&#39;error&#39;][$i]){
 
            case 1:
 
                $err_info="上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值";
 
                break;
 
            case 2:
 
                $err_info="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值";
 
                break;
 
            case 3:
 
                $err_info="文件只有部分被上傳";
 
                break;
 
            case 4:
 
                $err_info="沒有文件被上傳";
 
                break;
 
            case 6:
 
                $err_info="找不到臨時文件夾";
 
                break;
 
            case 7:
                $err_info="文件寫入失敗";
 
                break;
 
            default:
 
                $err_info="未知的上傳錯誤";
 
                break;
 
        }
 
        continue($err_info);
 
    }
 
 
    //3.判斷文件上傳的類型是否合法
 
    if(!in_array($up_info[$k_name][&#39;type&#39;],$typelist)){
 
        continue(&#39;文件類型錯誤!&#39;.$up_info[$k_name][&#39;type&#39;]);
 
    }
 
    //4.上傳文件的大小過濾
 
    if($up_info[$k_name][&#39;size&#39;]>100000){
 
        echo &#39;文件大小超過**&#39;;
 
        continue;
 
    }
 
    //5.上傳文件名處理
 
    $exten_name=pathinfo($up_info[$k_name][&#39;name&#39;],PATHINFO_EXTENSION);
 
    do{
 
        $main_name=date(&#39;YmHis&#39;.&#39;--&#39;.rand(100,999));
 
        $new_name=$main_name.&#39;.&#39;.$exten_name;
 
    }while(file_exists($to_path.&#39;/&#39;.$new_name));
 
    //6.判斷是否是上傳的文件,并執(zhí)行上傳
66
  
67
    if(is_uploaded_file($up_info[$k_name][&#39;tmp_name&#39;])){
 
        if(move_uploaded_file($up_info[$k_name][&#39;tmp_name&#39;],$ob_path.&#39;/&#39;.$new_name)){
 
            echo &#39;文件上傳成功!&#39;;
 
        }else{
 
            echo &#39;上傳文件移動失敗!&#39;;
 
        }
 
    }else{
 
        echo &#39;文件不是上傳的文件&#39;;
 
    }
 
} //for循環(huán)的括號
 
 
 
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="">
 
<input type="file" name="pic" /><br><br>
<input type="file" name="text" /><br><br>
 
<input type="file" name="doc" /><br><br>
 
<input type="file" name="pdf" /><br><br>
 
<input type="submit" value="upload"/>
 
</form>
 
// 方法二:當(dāng)多文件上傳表單中多個上傳文件的name屬性為“pic,text,doc,pdf”形式時

方法三:先定義單個文件上傳的函數(shù),再循環(huán)調(diào)用這個函數(shù),每次傳入一個文件的上傳信息,也可以到達多文件上傳的目的,而且這種方

/*
002
*單文件上傳函數(shù)
003
*@param array $up_info 記錄上傳文件信息的超全局?jǐn)?shù)組
004
*@param string $to_path 上傳文件的目標(biāo)路徑
005
*@param array $typlist 允許的文件類型
006
*@param int $file_size允許的文件大小
007
*@return string 上傳失敗,返回失敗的原因,
008
* http://yige.org/php/
009
* 成功返回包括文件名的路徑。
010
*/
 
function upload_fun($up_info,$to_path,$typelist=array(),$file_size=2000000){
 
  
 
    //1.判斷文件上傳是否錯誤
 
  
 
    if($up_file[&#39;error&#39;]>0){
 
        switch($up_info[&#39;error&#39;]){
 
            case 1:
 
                $err_info="上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值";
 
                break;
 
            case 2:
 
                $err_info="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值";
 
                break;
 
            case 3:
 
                $err_info="文件只有部分被上傳";
 
                break;
 
            case 4:
 
                $err_info="沒有文件被上傳";
           break;
        case 6:
 
                $err_info="找不到臨時文件夾";
 
                break;
 
            case 7:
 
                $err_info="文件寫入失敗";
 
                break;
 
            default:
 
                $err_info="未知的上傳錯誤";
 
                break;
 
        }
 
        return $err_info;
 
        die();
 
    }
 
    //2.判斷上傳文件類型是否合法
 
 
    if(count($typelist)>0){
 
        if(!in_array($up_info[&#39;type&#39;],$typelist)){
 
  
 
            $err_info=&#39;文件類型不合法!&#39;.$up_info[&#39;type&#39;];
 
            return $err_info;
 
            die();
 
        }
 
    }
 
    //4.判斷上傳文件大小是否超出允許值
 
    if($up_info[&#39;size&#39;]>$file_size){
 
        return $err_info=&#39;文件大小超過&#39;.$file_size;
 
        die();
 
    }
 
    //5.上傳文件重命名
 
    $exten_name=pathinfo($up_info[&#39;name&#39;],PATHINFO_EXTENSION);
 
    do{
 
        $main_name=date(&#39;YmHis&#39;.&#39;--&#39;.rand(100,999));
 
        $new_name=$main_name.&#39;.&#39;.$exten_name;
 
    }while(file_exists($to_path.&#39;/&#39;.$new_name));
 
    //6.判斷是否是上傳的文件,并移動文件
 
    if(is_uploaded_file($up_info[&#39;tmp_name&#39;])){
 
        if(move_uploaded_file($up_info[&#39;tmp_name&#39;],$to_path.&#39;/&#39;.$new_name)){
 
            $err_info=$to_path.&#39;/&#39;.$new_name;
 
            return $err_info;
            die();
 
        }else{
 
 
            return $err_info=&#39;上傳文件移動失敗!&#39;;
 
            die();
 
        }
 
    }else{
 
        return $err_info=&#39;這個文件不是上傳文件!&#39;;
 
        die();
 
    }
 
}
 
//函數(shù)使用方法如下
 
$multi_info=$_FILES; //接收$_FILES的全部上傳信息
 
$to_path=&#39;system&#39;; //上傳文件的目標(biāo)路徑
 
foreach($multi_info as $name=>$up_info){ //foreach 遍歷$multi_info
 
    $err_info=upload_fun($up_info,$to_path); //調(diào)用單文件上傳函數(shù)
 
    p($err_info); //輸出返回信息;
 
}
 
 
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="">
 
<input type="file" name="pic1" ><br>
 
<input type="file" name="pic2"><br>
 
<input type="file" name="pic3"><br>
 
<input type="submit" value="upload">
 
</form>
 
// 方法三:先定義單個文件上傳的函數(shù),再循環(huán)調(diào)用這個函數(shù),每次傳入一個文件的上傳信息,也可以到達多文件上傳的目的,而且這種方式,更容易理解。
------------------------------------------------------------------
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1502
276