法一:當(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['name']);$i++) { //foreach 循環(huán)處理多個文件上傳 //2.判斷文件是否上傳錯誤 if($up_info['error'][$i]>0){ switch($up_info['error'][$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['type'][$i],$typelist)){ continue('文件類型錯誤!'.$up_info['type'][$i]); } //4.上傳文件的大小過濾 if($up_info['size'][$i]>1000000){ continue('文件大小超過1000000'); } //5.上傳文件名處理 $exten_name=pathinfo($up_info['name'][$i],PATHINFO_EXTENSION); do{ $main_name=date('YmHis'.'--'.rand(100,99999)); $new_name=$main_name.'.'.$exten_name; }while(file_exists($to_path.'/'.$new_name)); //6.判斷是否是上傳的文件,并執(zhí)行上傳 if(is_uploaded_file($up_info['tmp_name'][$i])){ if(move_uploaded_file($up_info['tmp_name'][$i],$ob_path.'/'.$new_name)){ // echo '文件上傳成功!'; $img[]=$new_name; }else{ echo '上傳文件移動失敗!'; } }else{ echo '文件不是上傳的文件'; } } //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]['error']>0){ switch($up_info['error'][$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]['type'],$typelist)){ continue('文件類型錯誤!'.$up_info[$k_name]['type']); } //4.上傳文件的大小過濾 if($up_info[$k_name]['size']>100000){ echo '文件大小超過**'; continue; } //5.上傳文件名處理 $exten_name=pathinfo($up_info[$k_name]['name'],PATHINFO_EXTENSION); do{ $main_name=date('YmHis'.'--'.rand(100,999)); $new_name=$main_name.'.'.$exten_name; }while(file_exists($to_path.'/'.$new_name)); //6.判斷是否是上傳的文件,并執(zhí)行上傳 66 67 if(is_uploaded_file($up_info[$k_name]['tmp_name'])){ if(move_uploaded_file($up_info[$k_name]['tmp_name'],$ob_path.'/'.$new_name)){ echo '文件上傳成功!'; }else{ echo '上傳文件移動失敗!'; } }else{ echo '文件不是上傳的文件'; } } //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['error']>0){ switch($up_info['error']){ 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['type'],$typelist)){ $err_info='文件類型不合法!'.$up_info['type']; return $err_info; die(); } } //4.判斷上傳文件大小是否超出允許值 if($up_info['size']>$file_size){ return $err_info='文件大小超過'.$file_size; die(); } //5.上傳文件重命名 $exten_name=pathinfo($up_info['name'],PATHINFO_EXTENSION); do{ $main_name=date('YmHis'.'--'.rand(100,999)); $new_name=$main_name.'.'.$exten_name; }while(file_exists($to_path.'/'.$new_name)); //6.判斷是否是上傳的文件,并移動文件 if(is_uploaded_file($up_info['tmp_name'])){ if(move_uploaded_file($up_info['tmp_name'],$to_path.'/'.$new_name)){ $err_info=$to_path.'/'.$new_name; return $err_info; die(); }else{ return $err_info='上傳文件移動失敗!'; die(); } }else{ return $err_info='這個文件不是上傳文件!'; die(); } } //函數(shù)使用方法如下 $multi_info=$_FILES; //接收$_FILES的全部上傳信息 $to_path='system'; //上傳文件的目標(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 images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

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

Hot Article
Grass Wonder Build Guide | Uma Musume Pretty Derby
1 months ago
By Jack chen
Roblox: 99 Nights In The Forest - All Badges And How To Unlock Them
4 weeks ago
By DDD
Uma Musume Pretty Derby Banner Schedule (July 2025)
1 months ago
By Jack chen
RimWorld Odyssey Temperature Guide for Ships and Gravtech
3 weeks ago
By Jack chen
Windows Security is blank or not showing options
1 months ago
By 下次還敢

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)