亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php 實現多文件上傳程序代碼

2024-09-04 11:45:01
字體:
來源:轉載
供稿:網友

php文件上傳與多文件上傳其它沒有多大的區別,多文件上傳只是我們把表單名改成數組形式,而獲取利用foreach遍歷就可以實現多文件上傳了,動態多文件上傳只要在js加一個動態增加多文件上傳框,同樣在php處理時就遍歷一下數組就成了.

最簡單的實例如下,代碼如下:

  1. <form action="" method="post" enctype="multipart/form-data"
  2. <p>Pictures: 
  3. <input type="file" name="pictures[]" /> 
  4. <input type="file" name="pictures[]" /> 
  5. <input type="file" name="pictures[]" /> 
  6. <input type="submit" value="Send" /> 
  7. </p> 
  8. </form> 
  9.  
  10.        <?php 
  11. foreach ($_FILES["pictures"]["error"as $key => $error) { 
  12.         if ($error == UPLOAD_ERR_OK) { 
  13.             $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
  14.             $name = $_FILES["pictures"]["name"][$key]; 
  15.             move_uploaded_file($tmp_name"data/$name"); 
  16.         } 
  17. ?> 

下面分享其它朋友的例子,代碼如下:

  1. <?php 
  2. //filename:multi_upload.php 
  3. if($ifupload
  4. $path=AddSlashes(dirname($PATH_TRANSLATED))."/upload/"
  5. for($i=1;$i<=8;$i++) 
  6. $files="afile".$i
  7. if(${$files}!="none"
  8. if(copy(${$files},$path.${$files."_name"})) 
  9. print "<b>You have uploaded files successfully</b><br>"
  10. print "<a href="multi_upload.php">Return</a>"
  11. exit
  12. ?> 
  13. <html> 
  14. <html> 
  15. <head> 
  16. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  17. <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"
  18. <title>多個文件上傳</title> 
  19. <style type="text/css"
  20. <!-- 
  21. BODY 
  22. PADDING-RIGHT: 0px; 
  23. MARGIN-TOP: 0px; 
  24. PADDING-LEFT: 0px; 
  25. FONT-SIZE: 8px; 
  26. MARGIN-LEFT: 0px; 
  27. CURSOR: default
  28. COLOR: black; 
  29. MARGIN-RIGHT: 0px; 
  30. PADDING-TOP: 0px; 
  31. FONT-FAMILY: Arial; 
  32. BACKGROUND-COLOR: transparent; 
  33. TEXT-ALIGN: center 
  34. .TxtInput 
  35. FONT-SIZE: 8pt; 
  36. WIDTH: 100%; 
  37. CURSOR: default
  38. COLOR: black; 
  39. FONT-FAMILY: Arial; 
  40. HEIGHT: 21px; 
  41. BACKGROUND-COLOR: white; 
  42. TEXT-ALIGN: left 
  43. .FieldLabel 
  44. FONT-WEIGHT: normal; 
  45. FONT-SIZE: 9pt; 
  46. WIDTH: 100%; 
  47. COLOR: black; 
  48. FONT-FAMILY: Arial; 
  49. BACKGROUND-COLOR: transparent; 
  50. TEXT-ALIGN: left 
  51. .HeadBtn 
  52. BORDER-RIGHT: black 1px solid; 
  53. BORDER-TOP: white 1px solid; 
  54. FONT-SIZE: 8pt; 
  55. OVERFLOW: hidden; 
  56. BORDER-LEFT: white 1px solid; 
  57. WIDTH: 70px; 
  58. COLOR: black; 
  59. BORDER-BOTTOM: black 1px solid; 
  60. FONT-FAMILY: Arial; 
  61. HEIGHT: 21px; 
  62. BACKGROUND-COLOR: #8e8dcd; 
  63. TEXT-ALIGN: center 
  64. .TransEx 
  65. BORDER-RIGHT: black 1px solid; 
  66. PADDING-RIGHT: 8px; 
  67. BORDER-TOP: white 1px solid; 
  68. PADDING-LEFT: 8px; 
  69. FONT-SIZE: 8pt; 
  70. PADDING-BOTTOM: 3px; 
  71. BORDER-LEFT: white 1px solid; 
  72. WIDTH: 720px; 
  73. PADDING-TOP: 3px; 
  74. BORDER-BOTTOM: black 1px solid; 
  75. FONT-FAMILY: Arial; 
  76. BACKGROUND-COLOR: #c0c0c0; 
  77. TEXT-ALIGN: center 
  78. --> 
  79. </style> 
  80. <script language="javascript"
  81. function window.onload() 
  82. document.forms[0].btnOk.onclick=btn_ok; 
  83. function btn_ok() 
  84. for(var i=1;i<=8;i++) 
  85. if(eval("document.forms[0].afile"+i+".value!=''")) 
  86. document.forms[0].submit(); 
  87. return true; 
  88. alert("None of file have been selected"); 
  89. return false; 
  90. </script> 
  91. </head> 
  92. <body> 
  93. <form method="post" action="multi_upload.php" name="frmUpload" enctype="multipart/form-data" > 
  94. <table id="divContainer" style="HEIGHT: 100%; WIDTH: 380" border="0"
  95. <tr height="35"><td align="right" valign="bottom">多文件上傳 </td></tr> 
  96. <tr><td align="center" valign="top"
  97. <table class="Transex" border="0" cellspacing="0" cellpadding="0" style="WIDTH: 360px"
  98. <tr style="HEIGHT: 10px" > 
  99. <td style="WIDTH: 5px"></td> 
  100. <td colspan="2"></td>  
  101. <td style="WIDTH: 5px"></td> 
  102. </tr> 
  103. <tr> 
  104. <td></td> 
  105. <td nowrap><label class="FieldLabel"> 文件1</label></td> 
  106. <td><input type="file" class="TxtInput" tabindex="1" name="afile1" style="WIDTH: 282px"></td> 
  107. <td></td> 
  108. </tr> 
  109. <tr> 
  110. <td></td> 
  111. <td nowrap><label class="FieldLabel"> 文件2</label></td> 
  112. <td><input type="file" class="TxtInput" tabindex="2" name="afile2" style="WIDTH: 282px"></td> 
  113. <td></td> 
  114. </tr> 
  115. <tr> 
  116. <td></td> 
  117. <td nowrap><label class="FieldLabel"> 文件3</label></td> 
  118. <td><input type="file" class="TxtInput" tabindex="3" name="afile3" style="WIDTH: 282px"></td> 
  119. <td></td> 
  120. </tr> 
  121. <tr> 
  122. <td></td> 
  123. <td nowrap><label class="FieldLabel"> 文件4</label></td> 
  124. <td><input type="file" class="TxtInput" tabindex="4" name="afile4" style="WIDTH: 282px"></td> 
  125. <td></td> 
  126. </tr> 
  127. <tr> 
  128. <td></td> 
  129. <td nowrap><label class="FieldLabel"> 文件5</label></td> 
  130. <td><input type="file" class="TxtInput" tabindex="5" name="afile5" style="WIDTH: 282px"></td> 
  131. <td></td> 
  132. </tr> 
  133. <tr> 
  134. <td></td> 
  135. <td nowrap><label class="FieldLabel"> 文件6</label></td> 
  136. <td><input type="file" class="TxtInput" tabindex="6" name="afile6" style="WIDTH: 282px"></td> 
  137. <td></td> 
  138. </tr> 
  139. <tr> 
  140. <td></td> 
  141. <td nowrap><label class="FieldLabel"> 文件7</label></td> 
  142. <td><input type="file" class="TxtInput" tabindex="7" name="afile7" style="WIDTH: 282px"></td> 
  143. <td></td> 
  144. </tr> 
  145. <tr> 
  146. <td></td> 
  147. <td nowrap><label class="FieldLabel"> 文件8</label></td> 
  148. <td><input type="file" class="TxtInput" tabindex="8" name="afile8" style="WIDTH: 282px"></td>//開源代碼Vevb.com 
  149. <td></td> 
  150. </tr> 
  151. <tr style="HEIGHT: 5px"
  152. <td style="WIDTH: 5px"
  153. <td style="WIDTH: 350px" colspan="2"><hr width="100%"></td>  
  154. <td style="WIDTH: 5px"></td> 
  155. </tr> 
  156. <tr> 
  157. <td></td> 
  158. <td colspan="2" align="left"
  159. <button tabindex="5" class="headbtn" align="center" name="btnOk" id="btnOk" accesskey="O">確定(<ins>O</ins>)</button> 
  160. <input type="hidden" name="ifupload" value=1> 
  161. <button tabindex="5" class="headbtn" align="center" name="btnCancel" id="btnCancel" accesskey="C" onclick="window.close();">取消(<ins>C</ins>)</button></td>  
  162. <td></td> 
  163. </tr> 
  164. <tr style="HEIGHT: 5px"
  165. <td style="WIDTH: 5px"
  166. <td style="WIDTH: 350px" colspan="2"></td>  
  167. <td style="WIDTH: 5px"></td> 
  168. </tr> 
  169. </table> 
  170. </td> 
  171. </tr> 
  172. </table> 
  173. </form> 
  174. </body> 
  175. </html> 

如果我們要動態不確定性的多文件上傳怎么實現下面也有實例,代碼如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5. <title>文檔上傳</title>  
  6. </head>  
  7. <body>  
  8. <script language="javascript"><!--  
  9. 動態添加文件選擇控件-->  
  10. function AddRow()  
  11. {  
  12. var eNewRow = tblData.insertRow();  
  13. for (var i=0;i<1;i++)  
  14. {  
  15. var eNewCell = eNewRow.insertCell();  
  16. eNewCell.innerHTML = "<tr><td><input type='file' name='filelist[]' size='50'/></td></tr>";  
  17. }  
  18. }  
  19. // --></script>  
  20. <form name="myform" method="post" action="uploadfile.php" enctype="multipart/form-data" >  
  21. <table id="tblData" width="400" border="0">  
  22. <!-- 將上傳文件必須用post的方法和enctype="multipart/form-data" -->  
  23. <!-- 將本頁的網址傳給uploadfile.php-->  
  24. <input name="postadd" type="hidden" value="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"]; ?>" />  
  25. <tr><td>文件上傳列表  
  26. <input type="button" name="addfile" onclick="AddRow()" value="添加列表" /></td></tr>  
  27. <!-- filelist[]必須是一個數組-->  
  28. <tr><td><input type="file" name="filelist[]" size="50" /></td></tr>  
  29. </table>  
  30. <input type="submit" name="submitfile" value="提交文件" />  
  31. </form>  
  32. </body>  
  33. </html>  
  34. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  35. <html xmlns="http://www.w3.org/1999/xhtml">  
  36. <head>  
  37. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  38. <title>文檔上傳</title>  
  39. </head>  
  40. <body>  
  41. <script language="javascript"><!--  
  42. 動態添加文件選擇控件-->  
  43. function AddRow()  
  44. {  
  45. var eNewRow = tblData.insertRow();  
  46. for (var i=0;i<1;i++)  
  47. {  
  48. var eNewCell = eNewRow.insertCell();  
  49. eNewCell.innerHTML = "<tr><td><input type='file' name='filelist[]' size='50'/></td></tr>";  
  50. }  
  51. }  
  52. // --></script>  
  53. <form name="myform" method="post" action="uploadfile.php" enctype="multipart/form-data" >  
  54. <table id="tblData" width="400" border="0">  
  55. <!-- 將上傳文件必須用post的方法和enctype="multipart/form-data" -->  
  56. <!-- 將本頁的網址傳給uploadfile.php-->  
  57. <input name="postadd" type="hidden" value="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"]; ?>" />  
  58. <tr><td>文件上傳列表  
  59. <input type="button" name="addfile" onclick="AddRow()" value="添加列表" /></td></tr>  
  60. <!-- filelist[]必須是一個數組-->  
  61. <tr><td><input type="file" name="filelist[]" size="50" /></td></tr>  
  62. </table>  
  63. <input type="submit" name="submitfile" value="提交文件" />  
  64. </form> 
  65. </body> 
  66. </html> 

提交文件代碼:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5. <title>文件上傳結果</title>  
  6. </head>  
  7. <body>  
  8. <?php  
  9. if ($_POST["submitfile"]!="")  
  10. {  
  11. $Path="./".date('Ym')."/";  
  12. if (!is_dir($Path))//創建路徑  
  13. mkdir($Path); }  
  14. echo "<div>";  
  15. for ($i=0;$i<count($filelist);$i++)  
  16. //$_FILES["filelist"]["size"][$i]的排列順序不可以變,因為fileist是一個二維數組  
  17. if ($_FILES["filelist"]["size"][$i]!=0)  
  18. {  
  19. $File=$Path.date('Ymdhm')."_".$_FILES["filelist"]["name"][$i];  
  20. if (move_uploaded_file($_FILES["filelist"]["tmp_name"][$i],$File))  
  21. echo "文件上傳成功 文件類型:".$_FILES["filelist"]["type"][$i]." "."文件名:"  
  22. .$_FILES["filelist"]["name"][$i]."<br>"; }  
  23. else  
  24. echo "文件名:".$_FILES["filelist"]["name"][$i]."上傳失敗</br>"; }  
  25. }  
  26. }  
  27. echo "</div><br><a href="$postadd" href="$postadd">返回</a></div>";  
  28. }  
  29. ?>  
  30. </body>  
  31. </html> 

另:錯誤信息說明

從 PHP 4.2.0 開始,PHP 將隨文件信息數組一起返回一個對應的錯誤代碼,該代碼可以在文件上傳時生成的文件數組中的 error 字段中被找到,也就是 $_FILES['userfile']['error']。 

UPLOAD_ERR_OK

其值為 0,沒有錯誤發生,文件上傳成功.

UPLOAD_ERR_INI_SIZE

其值為 1,上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值.

UPLOAD_ERR_FORM_SIZE

其值為 2,上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值.UPLOAD_ERR_PARTIAL

其值為 3,文件只有部分被上傳.

UPLOAD_ERR_NO_FILE

其值為 4,沒有文件被上傳.

UPLOAD_ERR_NO_TMP_DIR

其值為 6,找不到臨時文件夾。PHP 4.3.10 和 PHP 5.0.3 引進.

UPLOAD_ERR_CANT_WRITE

其值為 7,文件寫入失敗。PHP 5.1.0 引進.

注意:以上值在 PHP 4.3.0 之后變成了 PHP 常量.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人精品久久| 亚洲欧美日韩天堂| 亚洲成人久久一区| 国产精品www网站| 亚洲自拍偷拍网址| 欧美另类xxx| 奇米一区二区三区四区久久| 日本欧美中文字幕| 91精品中文在线| 亚洲三级 欧美三级| 亚洲女人被黑人巨大进入al| 国产精品女视频| 精品一区二区三区三区| 欧美日韩中文字幕在线视频| 亚洲欧美www| 色诱女教师一区二区三区| 国产日韩专区在线| 亚洲人成五月天| 欧美性猛交xxxx乱大交3| 久久精品视频免费播放| 7m精品福利视频导航| 久久97精品久久久久久久不卡| 久久中文字幕一区| 91久久久国产精品| 国产在线拍偷自揄拍精品| 精品国产91久久久久久老师| 国产精品视频999| 国产精品久久久久久久久免费| 久久精品成人动漫| 国产精品美女久久久久久免费| 中文字幕亚洲精品| 欧美激情一区二区三区久久久| 欧美高清激情视频| 国产成人+综合亚洲+天堂| 欧美在线视频网| 国内精品久久久久影院优| 精品久久久久久电影| 97人洗澡人人免费公开视频碰碰碰| 亚洲国产一区二区三区在线观看| 国产小视频国产精品| 久久久久久久久91| 日韩精品中文字幕在线播放| 国产精品久久不能| 动漫精品一区二区| 欧美极品第一页| 欧美另类高清videos| 国产一级揄自揄精品视频| 日韩中文字幕视频在线观看| 久久激情视频久久| 久久久免费精品视频| 日本伊人精品一区二区三区介绍| 日韩免费在线播放| 欧美亚洲一级片| 日韩成人高清在线| 久久电影一区二区| 91影院在线免费观看视频| 一个人www欧美| 国产精品吊钟奶在线| 日韩中文字幕在线观看| 日韩精品在线看| 欧美亚洲国产视频小说| 欧美国产在线电影| 欧美中在线观看| 欧美天天综合色影久久精品| 久久国产色av| 亚洲欧洲高清在线| 91亚洲国产成人久久精品网站| 91免费欧美精品| 欧美成aaa人片免费看| 国产精品小说在线| 亚洲欧美在线磁力| 九九热这里只有在线精品视| 日韩毛片在线观看| 亚洲激情小视频| 久久久av网站| 日韩激情在线视频| 欧美日韩性视频在线| 久久久视频在线| 日韩欧美有码在线| 国内偷自视频区视频综合| 欧美亚洲在线视频| 亚洲视频日韩精品| 欧美激情精品久久久久久| 久久777国产线看观看精品| 国产精品综合网站| 人体精品一二三区| 国产精品稀缺呦系列在线| 日韩av在线免费| 欧美中文字幕在线| 国产成人精品在线播放| 91国产视频在线| 欧美日韩福利视频| 国产精品黄色影片导航在线观看| 欧美成人黄色小视频| 国产丝袜一区二区三区免费视频| 色综合久久悠悠| 亚洲qvod图片区电影| 尤物九九久久国产精品的特点| 欧美成人亚洲成人日韩成人| 国产成人激情小视频| 欧美日韩综合视频网址| 久久久久久久久久久久av| www.久久久久| 中文字幕日韩在线观看| 亚洲天堂免费在线| 国产精品久久久久久网站| 国产欧美日韩中文字幕| 亚洲欧美一区二区精品久久久| 欧美国产日韩xxxxx| 伊人成人开心激情综合网| 久久久久久久国产精品| 国产视频在线一区二区| 欧美大秀在线观看| 亚洲最大av网| 欧美在线亚洲在线| 98精品国产自产在线观看| 91高清视频免费| 国产欧美日韩视频| 精品爽片免费看久久| 日韩精品免费综合视频在线播放| 欧美亚洲午夜视频在线观看| 国内精品小视频在线观看| 欧美激情一级二级| 国产一区二区三区在线播放免费观看| 一区二区三区 在线观看视| 91精品国产综合久久香蕉922| 色妞一区二区三区| 欧美激情精品久久久久| 欧美孕妇与黑人孕交| 欧美裸体xxxx极品少妇| 欧美丝袜一区二区三区| 国产精品视频午夜| 日韩欧美大尺度| 日韩精品在线视频观看| 中文字幕一精品亚洲无线一区| 欧美一级视频免费在线观看| 亚洲欧美制服丝袜| 日韩精品黄色网| 91最新国产视频| 国产亚洲欧洲黄色| 久青草国产97香蕉在线视频| 91在线播放国产| 成人有码视频在线播放| 日韩在线视频观看正片免费网站| 国产精品露脸av在线| 国产亚洲精品美女久久久| 91高清视频免费| 日韩在线观看av| 欧美成人精品在线播放| 精品国产一区二区三区久久| 国产精品扒开腿做爽爽爽的视频| 国产精品成人播放| 亚洲欧美制服丝袜| 久久亚洲一区二区三区四区五区高| 国产精品第100页| 69久久夜色精品国产7777| 久久99久久99精品中文字幕| 国内揄拍国内精品少妇国语| 亚洲va国产va天堂va久久| 日韩欧美一区二区三区| 国产aaa精品| 欧美福利在线观看| 亚洲国产成人在线视频| 一区二区欧美亚洲|