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

首頁 > 語言 > PHP > 正文

PHP多文件上傳理解總結

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

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

  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 print_r($_FILES); ?>

查看源文件,代碼如下:

  1. Array 
  2. [pictures] => Array 
  3. [name] => Array 
  4. [0] => file1.txt 
  5. [1] => file2.txt 
  6. [2] => file3.txt 
  7. [type] => Array 
  8. [0] => application/octet-stream 
  9. [1] => application/octet-stream 
  10. [2] => application/octet-stream 
  11. [tmp_name] => Array 
  12. [0] => D:EasyPHP/tmpphp47.tmp 
  13. [1] => D:EasyPHP/tmpphp48.tmp 
  14. [2] => D:EasyPHP/tmpphp49.tmp 
  15. [error] => Array 
  16. [0] => 0 
  17. [1] => 0 
  18. [2] => 0 
  19. [size] => Array 
  20. [0] => 94289 
  21. [1] => 65536 
  22. [2] => 102400 

假設名為 /file1.txt和 /file2.txt 的文件被提交,則 $_FILES['pictures']['name'][0] 的值將是 file1.txt,而 $_FILES['pictures']['name'][1] 的值將是 file2.txt。類似的,$_FILES['file2.txt']['size'][0] 將包含文件 file1.txt 的大小,有了上面信息了我們要實現多文件上傳就簡單了,代碼如下:

  1. <?php 
  2.  
  3. class upload {  
  4. public $up_ext=array(), $up_max=5210, $up_dir;  
  5. private $up_name$up_rename=true, $up_num=0, $up_files=array(), $up_ret=array(); 
  6.  
  7. function __construct($name$ext=array(), $rename=true) {  
  8. if (!emptyempty($name)) {  
  9. $this->up_name = $name;  
  10. !emptyempty($ext) && $this->up_ext = $ext;  
  11. $this->up_rename = $rename;  
  12. $this->up_dir = website_dirroot.  
  13. $globals['cfg_upload_path'];  
  14. $this->initupload();  
  15. else {  
  16. exit('upload文件域名稱為空,初始化失??!');  
  17. }  
  18.  
  19. private function initupload() {  
  20. if (is_array($_files[$this->up_name])) {  
  21. $up_arr = count($_files[$this->up_name]);  
  22. $up_all = count($_files[$this->up_name], 1);  
  23. $up_cnt = ($up_all - $up_arr) / $up_arr;  
  24. for ($i = 0; $i < $up_cnt$i ++) {  
  25. if ($_files[$this->up_name]['error'][$i] != 4) {  
  26. $this->up_files[] = array(  
  27. 'tmp_name' => $_files[$this->up_name]['tmp_name'][$i],  
  28. 'name' => $_files[$this->up_name]['name'][$i],  
  29. 'type' => $_files[$this->up_name]['type'][$i],  
  30. 'size' => $_files[$this->up_name]['size'][$i],  
  31. 'error' => $_files[$this->up_name]['error'][$i]  
  32. );  
  33. }  
  34. }  
  35. $this->up_num = count($this->up_files);  
  36. else {  
  37. if (isset($_files[$this->up_name])) {  
  38. $this->up_files = array(  
  39. 'tmp_name' => $_files[$this->up_name]['tmp_name'],  
  40. 'name' => $_files[$this->up_name]['name'],  
  41. 'type' => $_files[$this->up_name]['type'],  
  42. 'size' => $_files[$this->up_name]['size'],  
  43. 'error' => $_files[$this->up_name]['error']  
  44. );  
  45. $this->up_num = 1;  
  46. else {  
  47. exit('沒找找到需要upload的文件!');  
  48. }  
  49.  
  50. $this->chkupload();  
  51.  
  52. private function chkupload() {  
  53. if (emptyempty($this->up_ext)) {  
  54. $up_mime = array('image/wbmp''image/bmp''image/gif''image/pjpeg''image/x-png');  
  55. foreach ($this->up_files as $up_file) {  
  56. $up_allw = false;  
  57. foreach ($up_mime as $mime) {  
  58. if ($up_file['type'] == $mime) {  
  59. $up_allw = true; break;  
  60. }  
  61. }  
  62. !$up_allw && exit('不允許上傳'.$up_file['type'].'格式的文件!'); 
  63.  
  64. if ($up_file['size'] / 1024 > $this->up_max) {  
  65. exit('不允許上傳大于 '.$this->up_max.'k 的文件!');  
  66. }  
  67. }  
  68. else {  
  69. foreach ($this->up_files as $up_file) {  
  70. $up_ext = end(explode('.'$up_file['name'])); 
  71.  
  72. $up_allw = false;  
  73. foreach ($this->up_ext as $ext) {  
  74. if ($up_ext == $ext) {  
  75. $up_allw = true; break;  
  76. }  
  77. }  
  78. !$up_allw && exit('不允許上傳.'.$up_ext.'格式的文件!'); 
  79.  
  80. if ($up_file['size'] / 1024 > $this->up_max) {  
  81. exit('不允許上傳大于 '.$this->up_max.'k 的文件!');  
  82. }  
  83. }  
  84.  
  85. $this->uploading();  
  86.  
  87. private function uploading() {  
  88. if (io::dircreate($this->up_dir)) {  
  89. if (chmod($this->up_dir, 0777)) {  
  90. if (!emptyempty($this->up_files)) {  
  91. foreach ($this->up_files as $up_file) {  
  92. if (is_uploaded_file($up_file['tmp_name'])) {  
  93. $file_name = $up_file['name'];  
  94. if ($this->up_rename) {  
  95. $file_ext = end(explode('.'$file_name));  
  96. $file_rnd = substr(md5(uniqid()), mt_rand(0, 26), 6);  
  97. $file_name = date('ymdhis').'_'.$file_rnd.'.'.$file_ext;  
  98. }  
  99. $file_name = $this->up_dir.'/'.$file_name
  100.  
  101. if (move_uploaded_file($up_file['tmp_name'], $file_name)) {  
  102. $this->up_ret[] = str_replace(website_dirroot, ''$file_name);  
  103. else {  
  104. exit('文件上傳失?。?#39;);  
  105. }  
  106. }  
  107. }  
  108. }  
  109. else {  
  110. exit('未開啟寫入權限!');  
  111. }  
  112. else {  
  113. exit('上傳目錄創建失??!');  
  114. //開源代碼Vevb.com 
  115.  
  116. public function getupload() {  
  117. return emptyempty($this->up_ret) ? false : $this->up_ret;  
  118.  
  119. function __destruct() {}  
  120. }  
  121. ?> 

在上面我們會看到一個for ($i = 0; $i < $up_cnt; $i ++),這個是遍歷我們上面講的一個個實例了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人999| 久久在线免费视频| 亚洲综合在线播放| 国产精品视频成人| 精品国产一区二区三区久久狼黑人| 91欧美精品成人综合在线观看| 91香蕉国产在线观看| 日韩中文字幕在线看| 亚洲毛片在线观看.| 91成人国产在线观看| 亚洲一区二区免费在线| 97香蕉久久超级碰碰高清版| 91高清在线免费观看| 中文字幕最新精品| 欧美日韩在线视频观看| 日韩精品免费在线视频观看| 国产精品第8页| 亚洲天堂免费观看| 一本色道久久88综合亚洲精品ⅰ| 亚洲成人aaa| 亚洲sss综合天堂久久| 国产一区二区三区在线播放免费观看| 国产精品高清在线| 欧美精品一区二区免费| www.欧美精品一二三区| 久久久久久久久亚洲| 欧美在线视频免费播放| 欧美一区二区三区免费视| 久久99精品久久久久久琪琪| 狠狠躁夜夜躁人人爽超碰91| 成人黄色网免费| 亚洲国产精品成人一区二区| 久久影院免费观看| 日韩欧美在线观看| 综合激情国产一区| 欧美午夜精品久久久久久久| 亚洲精品白浆高清久久久久久| 日av在线播放中文不卡| 欧美午夜片在线免费观看| 亚洲国产精品va在线看黑人| 精品女同一区二区三区在线播放| 欧洲中文字幕国产精品| 欧美裸身视频免费观看| 久热精品视频在线免费观看| 国产日韩欧美成人| 日韩中文字幕亚洲| 91在线观看免费| 国产精品极品美女在线观看免费| 亚洲天天在线日亚洲洲精| 欧美黄色三级网站| 丝袜亚洲欧美日韩综合| 欧美一区亚洲一区| 不卡av电影院| 亚洲三级 欧美三级| 欧美日韩性生活视频| 成人激情在线播放| 亚洲无亚洲人成网站77777| 亚洲网站在线看| 日韩在线观看你懂的| 日韩综合视频在线观看| 日韩成人激情视频| 亚洲精品电影久久久| 国产精品老女人视频| 在线视频日韩精品| 国产精品一区二区3区| 欧美性在线观看| 7m第一福利500精品视频| 91在线视频一区| 性欧美xxxx视频在线观看| 欧美日韩国产限制| 成人激情视频免费在线| 青草青草久热精品视频在线网站| 一区二区三区美女xx视频| 国产精品美女www爽爽爽视频| 欧美成人一区二区三区电影| 91精品国产91久久久久久最新| 色婷婷亚洲mv天堂mv在影片| 国产精品91在线| 亚洲精品国产精品国自产在线| 午夜精品一区二区三区在线视频| 亚洲在线观看视频网站| 亚洲一区二区久久久久久久| 国产99久久精品一区二区永久免费| 亚洲精品第一国产综合精品| 国产精品久久久久久影视| 亚洲自拍高清视频网站| 懂色av影视一区二区三区| 亚洲va男人天堂| 中文字幕欧美亚洲| 欧美亚洲视频在线看网址| 日韩中文字幕久久| 欧美日韩午夜视频在线观看| 成人xxxxx| 欧美午夜精品伦理| 91麻豆国产精品| 国产欧美日韩专区发布| 国产日韩欧美一二三区| 亚洲专区中文字幕| 青青在线视频一区二区三区| 亚洲欧美日韩精品久久奇米色影视| 成人免费大片黄在线播放| 久久久久久国产精品久久| 久久在线免费视频| 久久97久久97精品免视看| 欧美精品激情在线| 欧美日韩国产精品一区二区不卡中文| 国产原创欧美精品| 久久伊人91精品综合网站| 亚洲一区二区三区香蕉| 国产成人在线亚洲欧美| 国产欧美精品一区二区三区介绍| 国产精品第100页| 欧美视频在线看| 九九精品在线视频| 91国产视频在线| 成人久久一区二区三区| 亚洲视频在线看| 国产综合视频在线观看| 日本成人精品在线| 亚洲色图欧美制服丝袜另类第一页| 久久精品在线视频| 国产精品无码专区在线观看| 91精品国产综合久久久久久蜜臀| 久久精品电影一区二区| 色一情一乱一区二区| www.99久久热国产日韩欧美.com| 97视频在线观看播放| 国产91免费观看| 色妞欧美日韩在线| 国产亚洲美女久久| 国产在线拍偷自揄拍精品| 日韩av在线导航| 九九九久久国产免费| 久久久免费在线观看| 91久热免费在线视频| 欧美激情亚洲视频| 久久精品美女视频网站| 国产97免费视| 久久91超碰青草是什么| 亚洲成色777777在线观看影院| 国产精品久久久久久av福利软件| 亚洲自拍小视频免费观看| 在线播放国产一区二区三区| 国内精品久久久久久| 国产欧美在线观看| 亚洲人成欧美中文字幕| 久久久人成影片一区二区三区| 国产精品欧美日韩久久| 日韩在线视频网| 福利二区91精品bt7086| 亚洲第一视频网站| 久久国内精品一国内精品| 国产a∨精品一区二区三区不卡| 中文字幕欧美日韩| 国产成人一区二区三区电影| 国产日产欧美a一级在线| 亚洲综合精品伊人久久| 亚洲国产免费av| 成人激情在线观看| 97视频在线观看播放| 成人xxxxx| 一区二区欧美在线| 亚洲а∨天堂久久精品9966| 久久亚洲综合国产精品99麻豆精品福利|