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

PHP文件上傳

要想順利實(shí)現(xiàn)上傳功能,首先要在php.ini中開(kāi)啟文件上傳,并對(duì)其中一些參數(shù)作出合理的設(shè)置,找到 File Upload 項(xiàng) 可以看到下面有三個(gè)屬性,表示含義如下。

 file_upload :如果值為 on ,說(shuō)明服務(wù)器支持文件上傳。否則反之

upload_tmp_dir : 上傳文件臨時(shí)目錄。在文件被成功上傳之前,文件首先存放到服務(wù)器的臨時(shí)目錄。如果想要知道位置,可以在后面設(shè)置存放路徑,否則,使用系統(tǒng)默認(rèn)目錄

upload_max_filesize :服務(wù)器允許上傳的文件的最大值,以MB為單位。系統(tǒng)默認(rèn)為2MB,用戶可自行設(shè)置

 ★ 如果使用集成化的安裝包來(lái)配置PHP 的開(kāi)發(fā)環(huán)境,上面介紹的這些配置信息按默認(rèn)已經(jīng)配置好了。


文件上傳步驟

為了更好的學(xué)習(xí)PHP,我們將復(fù)雜的PHP的文件上傳歸納總結(jié)成為了6個(gè)步驟。

在實(shí)際使用過(guò)程中,按照這6個(gè)步驟就能夠很好的完成PHP的文件上傳:

 一.判斷是否有錯(cuò)誤碼

系統(tǒng)返回的錯(cuò)誤碼詳解:


     錯(cuò)誤碼    說(shuō)明
     0無(wú)誤,可以繼續(xù)進(jìn)行文件上傳的后續(xù)操作。


     1

超出上傳文件的最大限制,upload_max_filesize = 2M php.ini中設(shè)置,一般默認(rèn)為2M。可根據(jù)項(xiàng)目中的實(shí)際需要來(lái)修改

     

     2

超出了指定的文件大小,根據(jù)項(xiàng)目的業(yè)務(wù)需求指定上傳文件的大小限制
     3只有部分文件被上傳
     4文件沒(méi)有被上傳
     6找不到臨時(shí)文件夾,可能目錄不存在或沒(méi)權(quán)限
     7文件寫(xiě)入失敗,可能磁盤(pán)滿了或沒(méi)有權(quán)限

注★:錯(cuò)誤碼中沒(méi)有5


二.自定義判斷是否超出文件大小范圍

在開(kāi)發(fā)上傳功能時(shí)。我們作為開(kāi)發(fā)人員,除了php.ini中規(guī)定的上傳的最大值外。

我們通常還會(huì)設(shè)定一個(gè)值,是業(yè)務(wù)規(guī)定的上傳大小限制。

例如:

新浪微博或者QQ空間只準(zhǔn)單張頭像圖片2M。而在上傳圖冊(cè)的時(shí)候又可以超過(guò)2M來(lái)上傳。

所以說(shuō),它的系統(tǒng)是支持更大文件上傳的。

此處的判斷文件大小,我們用于限制實(shí)際業(yè)務(wù)中我們想要規(guī)定的上傳的文件大小。


三.判斷后綴名和MIME類(lèi)型是否符合

MIME(Multipurpose Internet Mail Extensions)是多用途互聯(lián)網(wǎng)郵件擴(kuò)展類(lèi)型。是設(shè)定某種擴(kuò)展名的文件用一種應(yīng)用程序來(lái)打開(kāi)的方式類(lèi)型,當(dāng)該擴(kuò)展名文件被訪問(wèn)的時(shí)

候,瀏覽器會(huì)自動(dòng)使用指定應(yīng)用程序來(lái)打開(kāi)。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開(kāi)方式。

 在判斷后綴和MIME類(lèi)型的時(shí)候,我們會(huì)用到PHP的一個(gè)函數(shù)in_array(),該函數(shù)傳入兩個(gè)參數(shù)。

第一個(gè)參數(shù)是要判斷的值;
第二個(gè)參數(shù)是范圍數(shù)組。

我們用這個(gè)函數(shù)來(lái)判斷文件的后綴名和mime類(lèi)型是否在允許的范圍內(nèi)。


四.生成文件名

我們的文件上傳成功了,不會(huì)讓它保存原名。

因?yàn)?,有些人在原名中有敏感關(guān)鍵詞會(huì)違反我國(guó)的相關(guān)法律和法規(guī)。

我們可以采用date()、mt_rand()或者unique()生成隨機(jī)的文件名。


五.判斷是否是上傳文件。

我們的文件上傳成功了,不會(huì)讓它保存原名。

因?yàn)?,有些人在原名中有敏感關(guān)鍵詞會(huì)違反我國(guó)的相關(guān)法律和法規(guī)。

我們可以采用date()、mt_rand()或者unique()生成隨機(jī)的文件名。文件上傳成功時(shí),系統(tǒng)會(huì)將上傳的臨時(shí)文件上傳到系統(tǒng)的臨時(shí)目錄中。產(chǎn)生一個(gè)臨時(shí)文件。

同時(shí)會(huì)產(chǎn)生臨時(shí)文件名。我們需要做的事情是將臨時(shí)文件移動(dòng)到系統(tǒng)的指定目錄中。

而移動(dòng)前不能瞎移動(dòng),或者移動(dòng)錯(cuò)了都是不科學(xué)的。移動(dòng)前我們需要使用相關(guān)函數(shù)判斷上傳的文件是不是臨時(shí)文件。

is_uploaded_file()傳入一個(gè)參數(shù)($_FILES中的緩存文件名),判斷傳入的名稱(chēng)是不是上傳文件。


六.移動(dòng)臨時(shí)文件到指定目錄

臨時(shí)文件是真實(shí)的臨時(shí)文件,我們需要將其移動(dòng)到我們的網(wǎng)站目錄下面了。

讓我們網(wǎng)站目錄的數(shù)據(jù),其他人可以訪問(wèn)到。

我們使用:move_uploaded_file()。
這個(gè)函數(shù)是將上傳文件移動(dòng)到指定位置,并命名。
傳入兩個(gè)參數(shù):
第一個(gè)參數(shù)是指定移動(dòng)的上傳文件;
第二個(gè)參數(shù)是指定的文件夾和名稱(chēng)拼接的字符串。

上傳文件必須在網(wǎng)頁(yè)中準(zhǔn)備好一個(gè)form表單。就像下面這樣

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 <body>
 
 <form action="file.php" method="post" enctype="multipart/form-data">
     <input type="file" name="file">
     <input type="submit" value="上傳">
 </form>
 
 </body>
 </html>

注意事項(xiàng):

1.    form 表單中的參數(shù)method 必須為post。若為get是無(wú)法進(jìn)行文件上傳的

2.    enctype須為multipart/form-dat

3.    當(dāng)選擇  的 type=file 時(shí),默認(rèn)為上傳文件內(nèi)容。

上面的form表單提交的文件內(nèi)容指向了file.php。

我們?cè)趂ile.php中,通過(guò)PHP代碼,來(lái)處理上傳文件。

我們選擇一個(gè)名為圖片進(jìn)行上傳。假設(shè)圖片的名字為:.jpg,點(diǎn)擊上傳。

PHP為文件類(lèi)數(shù)據(jù)準(zhǔn)備了一個(gè)專(zhuān)用的系統(tǒng)函數(shù)$_FILES,上傳文件的所有相關(guān)數(shù)據(jù),都保存在這個(gè)系統(tǒng)函數(shù)中。

在PHP文件中,我們打印 $_FILES ,來(lái)觀察這個(gè)數(shù)組的結(jié)構(gòu):

 <?php
//var_dump()或print_r()
//打印變量的相關(guān)信息,將變量的信息詳細(xì)的展示出來(lái)
var_dump($_FILES);
?>

程序運(yùn)行結(jié)果:

array(1) {
  ["file"]=>
  array(5) {
    ["name"]=>
    string(7) "psu.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(22) "C:\Windows\phpE2F1.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(488929)
  }
}

打印出來(lái)的結(jié)果的數(shù)組結(jié)構(gòu)如下:

array (size=1)
    'file' =>
       array (size=5)
       //文件名
      'name' => string 'psu.jpg' (length=7)
      //文件的mime類(lèi)型
      'type' => string 'image/jpeg' (length=10)                   
 
 
      //緩存文件,上傳的圖片即保存在這里
      'tmp_name' => string 'E:\wamp\tmp\phpC32A.tmp' (length=23)
      //錯(cuò)誤碼,詳見(jiàn)上面錯(cuò)誤碼介紹
      'error' => int 0                                            
      //上傳的文件大小
      'size' => int 225824              

得到了上面的數(shù)組結(jié)構(gòu)。

我們就可以開(kāi)始文件的處理過(guò)程了。


第一步,判斷錯(cuò)誤碼

<?php
header("Content-type:text/html;charset=utf-8");
if($_FILES['file']['error'] > 0){
    switch ($_FILES['file']['error']) {    //錯(cuò)誤碼不為0,即文件上傳過(guò)程中出現(xiàn)了錯(cuò)誤
        case '1':
            echo '文件過(guò)大';
            break;
        case '2':
            echo '文件超出指定大小';
            break;
        case '3':
            echo '只有部分文件被上傳';
            break;
        case '4':
            echo '文件沒(méi)有被上傳';
            break;
        case '6':
            echo '找不到指定文件夾';
            break;
        case '7':
            echo '文件寫(xiě)入失敗';
            break;
        default:
            echo "上傳出錯(cuò)<br/>";
    }
}else{
    echo "上傳成功";//錯(cuò)誤碼為0,即上傳成功,可以進(jìn)行后續(xù)處理,處理流程見(jiàn)下文
}
?>

上面的代碼詳細(xì)的介紹了錯(cuò)誤碼和對(duì)應(yīng)的錯(cuò)誤,我們可以根據(jù)錯(cuò)誤碼,來(lái)生成準(zhǔn)確的錯(cuò)誤提示。
 


第二步,判斷文件是否超出大小。
 

在實(shí)際項(xiàng)目中,由于系統(tǒng)硬件的限制,以及存儲(chǔ)設(shè)備的限制,不可能讓用戶無(wú)限制的上傳文件,所以我們要對(duì)用戶上傳的文件大小進(jìn)行限制。定義一個(gè)合適的限制大小,能讓

我們的應(yīng)用更穩(wěn)定的運(yùn)行。

<?php
header("Content-type:text/html;charset=utf-8");
if($_FILES['file']['error'] > 0){
    //有錯(cuò)誤可停止執(zhí)行
}else {
    //當(dāng)前上傳文件無(wú)誤,運(yùn)行本段代碼
    //判斷文件是否超出了指定的大小
    //單位為byte
    $MAX_FILE_SIZE = 100000
    if ($_FILES['file']['size'] > $MAX_FILE_SIZE) {
        //判斷,如果上傳的文件,大小超出了我們給的限制范圍,退上傳并產(chǎn)生錯(cuò)誤提示
        exit("文件超出指定大小");
    }
}
?>

將我們指定的文件大小,定義為$MAX_FILE_SIZE,該變量的計(jì)數(shù)單位為byte,對(duì)應(yīng)上傳文件的 $_FILES['file']['size']大小。

示例代碼中,限制大小約為100K及以下的文件。


第三步,判斷文件的mime類(lèi)型是否正確。

更多的時(shí)候,我們的文件上傳功能,都需要判斷用戶上傳的文件,是否符合要求,不可用的文件上傳以后,對(duì)于線上應(yīng)用的整體展示效果,會(huì)造成惡劣的影響。所以我們需通

過(guò)mime類(lèi)型和后綴名,來(lái)判斷用戶上傳的文件是否符合要求。

下面的示例代碼中,我們假設(shè)當(dāng)前的項(xiàng)目需求為指定上傳圖片,要求上傳后綴名為GIF或者jpg的文件,當(dāng)用戶上傳不符合要求的文件時(shí),返回錯(cuò)誤提示。

/*判斷后綴名和MIME類(lèi)型是否符合指定需求
 
例如:
當(dāng)前項(xiàng)目指定上傳后綴為.jpg或.gif的圖片,則$allowSuffix = array('jpg','gif');
*/
 
 
//定義允許的后綴名數(shù)組
$myImg = explode('.', $_FILES['file']['name']);        
 
/*
explode() 將一個(gè)字符串用指定的字符切割,并返回一個(gè)數(shù)組,這里我們將文件名用'.''切割,結(jié)果存在$myImg中,文件的后綴名即為數(shù)組的最后一個(gè)值
*/
 
 
$myImgSuffix = array_pop($myImg);
 
/*
根據(jù)上傳文件名獲取文件的后綴名
使用in_array()函數(shù),判斷上傳文件是否符合要求
當(dāng)文件后綴名不在我們?cè)试S的范圍內(nèi)時(shí)退出上傳并返回錯(cuò)誤信息
*/
 
if(!in_array($myImgSuffix, $allowSuffix)){                            
        exit("文件后綴名不符");
}
 
/*
mime類(lèi)型和文件后綴名的對(duì)應(yīng)關(guān)系,我們可以通過(guò)很多途徑查詢(xún)到,為了避免用戶自主修改文件后綴名造成文件無(wú)法使用。
mime類(lèi)型也必須做出限制檢查mime類(lèi)型,是為了防止上傳者直接修改文件后綴名
導(dǎo)致文件不可用或上傳的文件不符合要求。
*/
 
//數(shù)組內(nèi)容為允許上傳的mime類(lèi)型
$allowMime = array(
            "image/jpg",
            "image/jpeg",
            "image/pjpeg",
            "image/gif"
            );
 
 
if(!in_array($_FILES['file']['type'], $allowMime)){                      //判斷上傳文件的mime類(lèi)型是否在允許的范圍內(nèi)
      exit('文件格式不正確,請(qǐng)檢查');
    //如果不在允許范圍內(nèi),退出上傳并返回錯(cuò)誤信息
}


第四步,生成指定的路徑和文件名。

按照項(xiàng)目的文件安排,生成文件存儲(chǔ)路徑,為了避免文件名重復(fù)而產(chǎn)生的錯(cuò)誤,按照一定的格式,生成一個(gè)隨機(jī)文件名。

按照項(xiàng)目的文件安排,生成文件存儲(chǔ)路徑,為了避免文件名重復(fù)而產(chǎn)生的錯(cuò)誤,按照一定的格式,生成一個(gè)隨機(jī)文件名。

//指定上傳文件夾
$path = "upload/images/";
 
/*
根據(jù)當(dāng)前時(shí)間生成隨機(jī)文件名,本行代碼是使用當(dāng)前時(shí)間 + 隨機(jī)一個(gè)0-9的數(shù)字組合成文件名,后綴即為前面取到的文件后綴名
*/
 
$name = date('Y').date('m').date("d").date('H').date('i').date('s').rand(0,9).'.'.$myImgSuffix;


第五步,判斷是否是上傳文件。

is_uploaded_file()函數(shù)是專(zhuān)用的函數(shù),來(lái)判斷目標(biāo)文件是否是上傳文件。

<?php
 
//使用is_uploaded_file()判斷是否是上傳文件,函數(shù)介紹見(jiàn)上文
if(is_uploaded_file($_FILEs['file']['tmp_name'])){   
 
}
?>


第六步,移動(dòng)文件到指定位置。

使用move_uploaded_file()函數(shù),將文件移動(dòng)到指定的位置,并命名。需要注意的是,Linux系統(tǒng)中對(duì)目標(biāo)目錄是否有權(quán)限及磁盤(pán)空間是否足夠,否則會(huì)導(dǎo)致上傳操作失敗。

/*
使用move_uploaded_file()移動(dòng)上傳文件至指定位置,第一個(gè)參數(shù)為上傳文件,第二個(gè)參數(shù)為我們?cè)谇懊嬷付ǖ纳蟼髀窂胶兔Q(chēng)。
*/
 
if(move_uploaded_file($_FILEs['file']['tmp_name'], $path.$name)){
            //提示文件上傳成功
            echo "上傳成功";                               
        }else{
/*
文件移動(dòng)失敗,檢查磁盤(pán)是否有足夠的空間, */
            echo '上傳失敗';                                               
        }
    }else{
        echo '不是上傳文件';
    }
 
}
?>

我們將這個(gè)文件片段整理成一整個(gè)文件:一個(gè)簡(jiǎn)單的上傳圖片的程序

詳情見(jiàn)示例1


多文件上傳

介紹了PHP上傳單個(gè)文件的過(guò)程。但是有些時(shí)候,為了使用方便,我們需要滿足同時(shí)上傳多個(gè)文件的需求。多文件上傳原理相同,不過(guò)在處理數(shù)據(jù)時(shí),需要對(duì)上傳數(shù)據(jù)進(jìn)行特殊處理。

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 <body>
 <html>
 <body>
 <form action="morefile.php" method="post" enctype="multipart/form-data">
     <input type="file" name="file[]">
     <input type="file" name="file[]">
     <input type="submit" value="上傳">
 </form>
 </body>
 </html>
 </body>
 </html>

這里是一個(gè)簡(jiǎn)易的上傳頁(yè)面,form表單同時(shí)提交了兩個(gè)文件。我們 可以通過(guò)這個(gè)頁(yè)面提交內(nèi)容。

注意:

1.    input type="file" name="file[]"與之前相比f(wàn)ile后多加了一個(gè)中括號(hào)

2.    寫(xiě)了2個(gè)或者多個(gè)input type="file" name="file[]" 

數(shù)組結(jié)構(gòu)如下

array (size=1) 
    'file' => 
        array (size=5)
    'name' => 
        array (size=2)
        //文件名
        0 => string 'psu.jpg' (length=7)
        1 => string 'qwe.jpg' (length=7)
    //文件mime類(lèi)型
    'type' => array (size=2)
            0 => string 'image/jpeg' (length=10)
            1 => string 'image/jpeg' (length=10)
    //緩存文件
    'tmp_name' => 
        array (size=2)
            0 => string 'E:\wamp\tmp\phpF6D5.tmp' (length=23)
            1 => string 'E:\wamp\tmp\phpF6F5.tmp' (length=23)
    //文件錯(cuò)誤信息
    'error' => 
        array (size=2)
            0 => int 0
            1 => int 0
    //文件大小
    'size' => 
        array (size=2)
        0 => int 225824    
        1 => int 151651

我們可以看到,兩個(gè)文件被存儲(chǔ)在一個(gè)數(shù)組中,鍵名和上傳單文件是相同。所以,需要我們用for()循環(huán),來(lái)分別取出兩個(gè)文件的需要用到的數(shù)據(jù)。

在$_FILES中同時(shí)保存了兩個(gè)文件的數(shù)據(jù),我們需要使用一個(gè)簡(jiǎn)單的循環(huán),來(lái)讀取單個(gè)文件的信息,并將文件移動(dòng)到我們想要放的位置。

for ($i=0; $i < count($_FILE['file']['name']); $i++) { 
 
/*
用is_uploaded_file()函數(shù)判斷是上傳文件
并且沒(méi)有出現(xiàn)錯(cuò)
*/
 
    if(is_uploaded_file($_FILEs['file']['tmp_name'][$i]) && $_FILEs['file']['error'][$i] == 0){    
        if(move_uploaded_file($_FILEs['file']['tmp_name'][$i],'upload/'.$_FILE['file']['name'][$i])){
    //用move_uploaded_file()函數(shù)移動(dòng)文件到指定的位置并使用文件原名
    echo "上傳成功";
 
        }else{
 
            echo '上傳失敗';
 
        }
 
    }else{
 
        echo '上傳失敗';
 
    }
 
}

詳細(xì)的判斷過(guò)程,參見(jiàn)單文件上傳,這里只做了基本的判斷,并沒(méi)有對(duì)文件的大小及格式提醒。 


實(shí)例1

上傳圖片程序

程序1 html 頁(yè)面

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 <body>
 
 
 <form action="file-upload.php" enctype="multipart/form-data" method="post" name="uploadfile">
     上傳文件:<input type="file" name="upfile" /><br>
     <input type="submit" value="上傳" /></form>
 </form>
 
 </body>
 </html>

程序2  提交到 php 頁(yè)面

<?php
 header("Content-type:text/html;charset=utf-8");
 //print_r($_FILES["upfile"]); 
 if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
     $upfile=$_FILES["upfile"];
 //獲取數(shù)組里面的值 
     $name=$upfile["name"];//上傳文件的文件名
     $type=$upfile["type"];//上傳文件的類(lèi)型
     $size=$upfile["size"];//上傳文件的大小
     $tmp_name=$upfile["tmp_name"];//上傳文件的臨時(shí)存放路徑
 //判斷是否為圖片 
     switch ($type){
         case 'image/pjpeg':$okType=true;
             break;
         case 'image/jpeg':$okType=true;
             break;
         case 'image/gif':$okType=true;
             break;
         case 'image/png':$okType=true;
             break;
     }
 
     if($okType){
         /**
          * 0:文件上傳成功<br/>
          * 1:超過(guò)了文件大小,在php.ini文件中設(shè)置<br/>
          * 2:超過(guò)了文件的大小MAX_FILE_SIZE選項(xiàng)指定的值<br/>
          * 3:文件只有部分被上傳<br/>
          * 4:沒(méi)有文件被上傳<br/>
          * 5:上傳文件大小為0
          */
         $error=$upfile["error"];//上傳后系統(tǒng)返回的值
         echo "上傳文件名稱(chēng)是:".$name."<br/>";
         echo "上傳文件類(lèi)型是:".$type."<br/>";
         echo "上傳文件大小是:".$size."<br/>";
         echo "上傳后系統(tǒng)返回的值是:".$error."<br/>";
         echo "上傳文件的臨時(shí)存放路徑是:".$tmp_name."<br/>";
 
         echo "開(kāi)始移動(dòng)上傳文件<br/>";
 //把上傳的臨時(shí)文件移動(dòng)到指定目錄下面
         move_uploaded_file($tmp_name,'D:\\upload/images/'.$name);
         $destination="D:\\upload/images/".$name;
 
         echo "上傳信息:<br/>";
         if($error==0){
             echo "文件上傳成功啦!";
 
         }elseif ($error==1){
             echo "超過(guò)了文件大小,在php.ini文件中設(shè)置";
         }elseif ($error==2){
             echo "超過(guò)了文件的大小MAX_FILE_SIZE選項(xiàng)指定的值";
         }elseif ($error==3){
             echo "文件只有部分被上傳";
         }elseif ($error==4){
             echo "沒(méi)有文件被上傳";
         }else{
             echo "上傳文件大小為0";
         }
     }else{
         echo "請(qǐng)上傳jpg,gif,png等格式的圖片!";
     }
 }
 ?>

找一個(gè)圖片上傳,看看程序運(yùn)行結(jié)果


實(shí)例2

本例有4個(gè)文件上傳域,文件域的名字為 u_file[] ,提交后上傳的文件信息都被保存到$_FILES[u_file]中,生成多維數(shù)組。讀取數(shù)組信息,并上傳文件。

程序1 html 頁(yè)面

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 <body>
 <html>
 <body>
 <p>請(qǐng)選擇要上傳的文件</p>
 <form action="morefile.php" method="post" enctype="multipart/form-data">
   <table border="1" bgcolor="f0f0f0">
       <tr>
           <td>上傳文件</td>
           <td><input type="file" name="u_file[]"></td>
       </tr>
       <tr>
           <td>上傳文件</td>
           <td><input type="file" name="u_file[]"></td>
       </tr>
       <tr>
           <td>上傳文件</td>
           <td><input type="file" name="u_file[]"></td>
       </tr>
       <tr>
           <td>上傳文件</td>
           <td><input type="file" name="u_file[]"></td>
       </tr>
       <tr>
           <td colspan="2"><input type="submit" value="上傳"></td>
       </tr>
 
   </table>
 </form>
 </body>
 </html>
 </body>
 </html>

程序2  提交到 php 頁(yè)面

<?php
header("Content-type:text/html;charset=utf-8");
if(!empty($_FILES[u_file][name])){           //判斷遍歷$_FILES是否為空
    $file_name=$_FILES[u_file][name];         //將上傳文件名另存為數(shù)組
    $file_tmp_name=$_FILES[u_file][tmp_name];      //將上傳的臨時(shí)文件名另存為數(shù)組
    for($i=0;$i<count($file_name);$i++){         //循環(huán)上傳文件
        if($file_name[$i]!=""){                 //判斷上傳文件名是否為空
            move_uploaded_file($file_tmp_name[$i],$i.$file_name[$i]);
            echo "文件" .$file_name[$i] ."上傳成功。更名為"."$file_name[$i]"."<br>";
        }
    }
}
?>

運(yùn)行你的程序看看吧


實(shí)例3

本例上傳一個(gè)表單,允許上傳大小為1MB 以下的文件  

<from action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上傳">
</from>
<?php
if(!empty($_FILES[file][name])){      //判斷是否有文件上傳
    $fileinfo=$_FILES[file];         //將文件信息賦給變量$fileinfo
    if($fileinfo['size']<1000000 && $fileinfo['size']>0){         //判斷文件大小
        echo "上傳成功";
    }else{
        echo "上傳文件太大或未知";
    }
}
?>

運(yùn)行你的程序。


繼續(xù)學(xué)習(xí)
||
<from action="" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上傳"> </from> <?php if(!empty($_FILES[file][name])){ //判斷是否有文件上傳 $fileinfo=$_FILES[file]; //將文件信息賦給變量$fileinfo if($fileinfo['size']<1000000 && $fileinfo['size']>0){ //判斷文件大小 echo "上傳成功"; }else{ echo "上傳文件太大或未知"; } } ?>
提交重置代碼
章節(jié)
筆記
提問(wèn)
課件
反饋
捐贈(zèng)

PHP 零基礎(chǔ)入門(mén)教程