您好,欢迎访问一九零五行业门户网

php多文件上传的三种方法

1000000){continue('文件大小超过1000000');}//5.上传文件名处理$exten_name=pathinfo($up_info['name'][$i],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'][$i])){if(move_uploaded_file($up_info['tmp_name'][$i],$ob_path.'/'.$new_name)){echo '文件上传成功!';}else{echo '上传文件移动失败!';}}else{echo '文件不是上传的文件';}} //for循环的括号2.当多文件上传表单中多个上传文件的name属性为“pic,text,doc,pdf”形式时,也即表单为这种形式:
也可用foreach 循环 上传多个文件://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循环 处理多个文件的上传//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.判断是否是上传的文件,并执行上传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循环的括号//3.上面的循环是嵌入到文件上传的代码中的,可能有点不好理解,这儿提供第三种法,//先定义单个文件上传的函数,再循环调用这个函数,每次传入一个文件的上传信息,//也可以到达多文件上传的目的,而且这种方式,更容易理解。//上传的表单的形式和第二种方法中的相同,即:
//定义函数如下:/**单文件上传函数*@param array $up_info 记录上传文件信息的超全局数组*@param string $to_path 上传文件的目标路径*@param array $typlist 允许的文件类型*@param int $file_size允许的文件大小*@return string 上传失败,返回失败的原因,** 成功返回包括文件名的路径。*/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();}}//函数使用方法如下$multi_info=$_files; //接收$_files的全部上传信息$to_path='system'; //上传文件的目标路径 foreach($multi_info as $name=>$up_info){ //foreach 遍历$multi_info $err_info=upload_fun($up_info,$to_path); //调用单文件上传函数p($err_info); //输出返回信息;}//本文到此结束www.15597.com。?>
其它类似信息

推荐信息