国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP多文件上傳

2024-09-04 11:44:42
字體:
供稿:網(wǎng)友

多文件上傳是PHP中一基礎(chǔ)應(yīng)用,在此把相關(guān)知識向大家詳細(xì)介紹一下,本人水平有限,還請多提意見,大家一起進(jìn)步。

上傳文件HTML的輸入標(biāo)簽FILE類型中的名稱后要加[],作用是在HTML中向PHP建立數(shù)組,比如名稱為pictures,多文件引用名稱則為pictures[],實(shí)例如下:

  1. <form action="upload.php" method="post" enctype="multipart/form-data"> 
  2. <p> 
  3. <input type="file" name="pictures[]" /><br /> 
  4. <input type="file" name="pictures[]" /><br /> 
  5. <input type="file" name="pictures[]" /><br /> 
  6. <input type="submit" value="上傳" /> 
  7. </p> 
  8. </form> //手冊中實(shí)例。 

利用HTML文件建立數(shù)組的方法手冊中是這樣講解的:要使你的 <form> 結(jié)果被當(dāng)成 array 發(fā)送到 PHP 腳本,要對 <input>,<select> 或者 <textarea> 單元這樣命名: 

  1. <input name="MyArray[]" /> 
  2. <input name="MyArray[]" /> 
  3. <input name="MyArray[]" /> 
  4. <input name="MyArray[]" /> 

注意變量名后的方括號,這使其成為一個數(shù)組,可以通過給不同的單元分配相同的名字來把單元分組到不同的數(shù)組里:

  1. <input name="MyArray[]" /> 
  2. <input name="MyArray[]" /> 
  3. <input name="MyOtherArray[]" /> 
  4. <input name="MyOtherArray[]" /> 

這將產(chǎn)生兩個數(shù)組,MyArray 和 MyOtherArray,并發(fā)送給 PHP 腳本,還可以給數(shù)組分配指定的鍵名:

  1. <input name="AnotherArray[]" /> 
  2. <input name="AnotherArray[]" /> 
  3. <input name="AnotherArray[email]" /> 
  4. <input name="AnotherArray[phone]" /> 

AnotherArray 數(shù)組將包含鍵名 0,1,email 和 phone。

注意:指定數(shù)組的鍵名是 HTML 的可選項(xiàng)。如果不指定鍵名,則數(shù)組被按照單元在表單中出現(xiàn)的順序填充。第一個例子將包含鍵名 0,1,2,3。

以上HTML點(diǎn)擊上傳后,通過$_FILES超級全局變量進(jìn)行讀取,$_FILES將會把HTTP POST 方法傳遞上來的文件信息組合成數(shù)組,一個文件數(shù)組形式為二維。二個以上文件數(shù)組形式為三維。

$_FILES的使用方法:

$_FILES['userfile']['name'] 客戶端機(jī)器文件的原名稱。 

$_FILES['userfile']['type'] 文件的 MIME 類型,如果瀏覽器提供此信息的話。一個例子是“image/gif”。不過此 MIME 類型在 PHP 端并不檢查,因此不要想當(dāng)然認(rèn)為有這個值。

$_FILES['userfile']['size'] 已上傳文件的大小,單位為字節(jié)。

$_FILES['userfile']['tmp_name'] 文件被上傳后在服務(wù)端儲存的臨時(shí)文件名。

$_FILES['userfile']['error'] 

下面是一個文件上傳,此文件上傳后$_FILES數(shù)組內(nèi)將會產(chǎn)生其信息,因?yàn)槭且粋€文件所以是二維的,為了便于大家理解我們將$_FILES用PRINT_R輸出查看其結(jié)構(gòu),HTML文件:

  1. <form action="upload.php" method="post" enctype="multipart/form-data"> 
  2. <p> 
  3. <input type="file" name="pictures" /><br /> 
  4. <input type="submit" value="上傳" /> 
  5. </p> 
  6. </form> 

PHP接收文件:

  1. <?php 
  2. print_r($_FILES); 
  3. ?> 

將其令存為UPLOAD.PHP,運(yùn)行上面的HTML選擇一個文件上傳,比如文件名為Thumbs.db,在IE瀏覽器內(nèi)單擊“查看”,“源代碼”。顯示如下:

  1. Array 
  2.     [pictures] => Array 
  3.         ( 
  4.             [name] => Thumbs.db                       //原文件名 
  5.             [type] => application/octet-stream                //文件類型 
  6.             [tmp_name] => D:EasyPHP/tmpphp64.tmp            //臨時(shí)存儲目錄及文件名 
  7.             [error] => 0                      //錯誤代碼 0為上傳成功 
  8.             [size] => 23040                             //文件大小 
  9.         ) 

根據(jù)此信息,結(jié)合上面$_FILES的使用方法,大家應(yīng)該能理解的更深刻一些,下面看一下多文件上傳,三個文件名分別為FILE1.TXT,FILE2.TXT,FILE3.TXT,然后用PRINT_R輸出查看其結(jié)構(gòu),HTML文件代碼:

  1. <form action="upload.php" method="post" enctype="multipart/form-data"> 
  2. <p> 
  3. <input type="file" name="pictures[]" /><br /> 
  4. <input type="file" name="pictures[]" /><br /> 
  5. <input type="file" name="pictures[]" /><br /> 
  6. <input type="submit" value="上傳" /> 
  7. </p> 
  8. </form> 

PHP接收文件代碼:

  1. <?php 
  2. print_r($_FILES); 
  3. ?> 

查看源文件:

  1. Array 
  2.     [pictures] => Array 
  3.         ( 
  4.             [name] => Array 
  5.                 ( 
  6.                     [0] => file1.txt 
  7.                     [1] => file2.txt 
  8.                     [2] => file3.txt 
  9.                 ) 
  10.             [type] => Array 
  11.                 ( 
  12.                     [0] => application/octet-stream 
  13.                     [1] => application/octet-stream 
  14.                     [2] => application/octet-stream 
  15.                 ) 
  16.             [tmp_name] => Array 
  17.                 ( 
  18.                     [0] => D:EasyPHP/tmpphp47.tmp 
  19.                     [1] => D:EasyPHP/tmpphp48.tmp 
  20.                     [2] => D:EasyPHP/tmpphp49.tmp 
  21.                 ) 
  22.             [error] => Array 
  23.                 ( 
  24.                     [0] => 0 
  25.                     [1] => 0 
  26.                     [2] => 0 
  27.                 ) 
  28.             [size] => Array 
  29.                 ( 
  30.                     [0] => 94289 
  31.                     [1] => 65536 
  32.                     [2] => 102400 
  33.                 ) 
  34.         ) 

假設(shè)名為 /file1.txt  和 /file2.txt 的文件被提交,則 $_FILES['pictures']['name'][0] 的值將是 file1.txt,而 $_FILES['pictures']['name'][1] 的值將是 file2.txt。類似的,$_FILES['file2.txt']['size'][0] 將包含文件 file1.txt 的大小,依此類推.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊金霍洛旗| 柏乡县| 南陵县| 兴安县| 衡阳市| 南京市| 汕尾市| 林芝县| 桑日县| 墨脱县| 垣曲县| 翼城县| 巴楚县| 利辛县| 开阳县| 临颍县| 白水县| 新民市| 惠东县| 阜康市| 建宁县| 安顺市| 新干县| 吉安县| 龙泉市| 连城县| 若羌县| 遂平县| 江川县| 苏州市| 肃南| 岗巴县| 霍邱县| 阿拉善盟| 武安市| 阳朔县| 景泰县| 游戏| 化德县| 盱眙县| 社旗县|