php多文件上传|php 批量大文件上传下载如何实现

php多文件上传|php 批量大文件上传下载如何实现的第1张示图

『壹』 php 批量大文件上传下载如何实现

1.首先抄还是查看环境是否支持超大容量上传的支持,500M以上的文件通常为视频文件;2.即然他要上传500M以上的文件,估计服务器性能必定非同凡想,所以暂可不考虑服务器硬件配置问题,但一定要考虑到网速问题,建议1000M以上出入速率,如少于这个数,你可以放弃这个方案了;3.前面硬件都过关了,但程序也要加强了,一下上传500M是哪种语言都不能实现的,唯一解决方案,文件切割,如迅雷下载原理一样(采用续点上传),分成若干小块,然后全部上传完毕以后,再进行文件合成。4.至于PHP的文件切割,切割后上传,以及文件合并,此类代码网上有许多,楼主可查询并选择适合你的代码,实现你的功能!

『贰』 php如何实现一次性上传多个文件

<?php $max_files=5; //最多上传文件的个数,与 up.htm 中的 input file 控件的个数相同$up_ok_files=0; //成功上传的文件个数$up_folder="ups"; //保存上传文件的目标文件夹if(isset($_FILES['myfile'])){ //由于 $_FILES['myfile'] 是个数组,所以需要使用循环遍历 for($i=0;$i<$max_files;$i++){ //如果未出错 if($_FILES['myfile']['error'][$i]==0){ if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){ //成功上传后,计数器增 1 $up_ok_files +=1; } else{ echo "<h4 style='color:red;'>在服务器中保存失败</h4>"; } } } echo "<h4>成功上传 ".$up_ok_files. " 个文件</h4>"; }?> 如果对 $_FILES['myfile'] 这个数组的结构不清楚,那么可以在循环之前加入这句代码将其显示出来:print_r($_FILES['myfile']); 对这个数组的结构了解之后,理解上述代码就比较容易了。foreach循环实现常规下,php上传一张图片,页面上添加一个文件域,上传后,得到的数组是二维数组转变一下,页面上添加多个文件域,并且他们的name属性相同,而且是以数组形式提交(比如:name="file[]")那么上传后,得到的是三维数组而,php中,foreach循环对遍历数组那真是完美至极用foreach遍历一次这个三维数组,得到的结果就又是二维数组,那么,就和上传一张图片一样一样的了

『叁』 php实现多文件上传

<!doctypehtml><html><head><metacharset="utf-8"><title>无标题文档</title></head><body><formaction="?up=1"method="post"enctype="multipart/form-data"name="form1"><inputtype="file"name="file[]"><br><inputtype="file"name="file[]"id="fileField2"><br><inputtype="file"name="file[]"id="fileField3"><br><inputtype="submit"name="button"id="button"value="全部上传"></form></body></html><?phpif(!empty($_GET['up'])){is_dir('fileupload')ormkdir('fileupload');//如果上传目录不存在则建立$F=$_FILES['file'];//取得上传域数组$N=sizeof($F);//取得上传个数for($i=0;$i<$N;$i++){//循环处理if($F['error'][$i]){//如果上传错误break;//跳出循环}if(!in_array($F['type'][$i],array('image/jpg','image/png','image/gif','image/jpeg'))){//如果文件格式不对break;//跳出循环};if(ceil($F['size'][$i]/1024)>100){//如果文件过大break;//跳出循环}move_uploaded_file($F['tmp_name'][$i],'fileupload/'.$F['name'][$i]);//保存上传的文件}}?>

『肆』 多文件上传php怎么写

方法一:当多文件上传表单中多个上传文件的name属性为“pic[]”形式时,也即表单为这种形式。HTML代码:1<formaction=""method="post"enctype="multipart/form-data">2<inputtype="hidden"name="MAX_FILE_SIZE"value="">3<inputtype="file"name="pic[]"/><br><br>4<inputtype="file"name="pic[]"/><br><br>5<inputtype="file"name="pic[]"/><br><br>6<inputtype="file"name="pic[]"/><br><br>7<inputtype="submit"value="upload"/>8</form>PHP代码:01<?php02//1.获取要上传文件的信息03$up_info=$_FILES['pic'];0405$ob_path="../system";0607$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png");//定义运行的上传文件类型080910for($i=0;$i<count($up_info['name']);$i++){//foreach循环处理多个文件上传11//2.判断文件是否上传错误1213if($up_info['error'][$i]>0){14switch($up_info['error'][$i]){15case1:16$err_info="上传的文件超过了php.ini中upload_max_filesize选项限制的值";17break;18case2:19$err_info="上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值";20break;21case3:22$err_info="文件只有部分被上传";23break;24case4:25$err_info="没有文件被上传";26break;27case6:28$err_info="找不到临时文件夹";29break;30case7:31$err_info="文件写入失败";32break;33default:34$err_info="未知的上传错误";35break;36}37continue($err_info);38}394041//3.判断文件上传的类型是否合法4243if(!in_array($up_info['type'][$i],$typelist)){44continue('文件类型错误!'.$up_info['type'][$i]);45}4647//4.上传文件的大小过滤4849if($up_info['size'][$i]>1000000){50continue('文件大小超过1000000');51}525354//5.上传文件名处理5556$exten_name=pathinfo($up_info['name'][$i],PATHINFO_EXTENSION);5758do{59$main_name=date('YmHis'.'–'.rand(100,999));60$new_name=$main_name.'.'.$exten_name;61}while(file_exists($to_path.'/'.$new_name));62636465//6.判断是否是上传的文件,并执行上传6667if(is_uploaded_file($up_info['tmp_name'][$i])){6869if(move_uploaded_file($up_info['tmp_name'][$i],$ob_path.'/'.$new_name)){70echo'文件上传成功!';71}else{72echo'上传文件移动失败!';73}74}else{75echo'文件不是上传的文件';76}7778}//for循环的括号方法二:当多文件上传表单中多个上传文件的name属性为“pic,text,doc,pdf”形式时也即表单为这种形式:1<formaction=""method="post"enctype="multipart/form-data">2<inputtype="hidden"name="MAX_FILE_SIZE"value="">3<inputtype="file"name="pic"/><br><br>4<inputtype="file"name="text"/><br><br>5<inputtype="file"name="doc"/><br><br>6<inputtype="file"name="pdf"/><br><br>78<inputtype="submit"value="upload"/>9</form>01//1.获取要上传文件的信息02$up_info=$_FILES;0304$ob_path="..system";0506$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png");//定义运行的上传文件类型07080910foreach($up_infoas$k_name=>$value){//用foreach循环处理多个文件的上传11//2.判断文件是否上传错误1213if($up_info[$k_name]['error']>0){14switch($up_info['error'][$i]){15case1:16$err_info="上传的文件超过了php.ini中upload_max_filesize选项限制的值";17break;18case2:19$err_info="上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值";20break;21case3:22$err_info="文件只有部分被上传";23break;24case4:25$err_info="没有文件被上传";26break;27case6:28$err_info="找不到临时文件夹";29break;30case7:31$err_info="文件写入失败";32break;33default:34$err_info="未知的上传错误";35break;36}37continue($err_info);38}394041//3.判断文件上传的类型是否合法4243if(!in_array($up_info[$k_name]['type'],$typelist)){44continue('文件类型错误!'.$up_info[$k_name]['type']);45}4647//4.上传文件的大小过滤4849if($up_info[$k_name]['size']>100000){50echo'文件大小超过**';51continue;52}535455//5.上传文件名处理5657$exten_name=pathinfo($up_info[$k_name]['name'],PATHINFO_EXTENSION);5859do{60$main_name=date('YmHis'.'–'.rand(100,999));61$new_name=$main_name.'.'.$exten_name;62}while(file_exists($to_path.'/'.$new_name));636465//6.判断是否是上传的文件,并执行上传6667if(is_uploaded_file($up_info[$k_name]['tmp_name'])){6869if(move_uploaded_file($up_info[$k_name]['tmp_name'],$ob_path.'/'.$new_name)){70echo'文件上传成功!';71}else{72echo'上传文件移动失败!';73}74}else{75echo'文件不是上传的文件';76}7778}//for循环的括号方法三:先定义单个文件上传的函数,再循环调用这个函数,每次传入一个文件的上传信息,也可以到达多文件上传的目的,而且这种方式,更容易理解。1<formaction=""method="post"enctype="multipart/form-data">2<inputtype="hidden"name="MAX_FILE_SIZE"value="">3<inputtype="file"name="pic1"><br>4<inputtype="file"name="pic2"><br>5<inputtype="file"name="pic3"><br>6<inputtype="submit"value="upload">7</form>001/*002*单文件上传函数003*@paramarray$up_info记录上传文件信息的超全局数组004*@paramstring$to_path上传文件的目标路径005*@paramarray$typlist允许的文件类型006*@paramint$file_size允许的文件大小007*@returnstring上传失败,返回失败的原因,008*http://yige.org/php/009*成功返回包括文件名的路径。010*/011012013functionupload_fun($up_info,$to_path,$typelist=array(),$file_size=2000000){014015//1.判断文件上传是否错误016017if($up_file['error']>0){018switch($up_info['error']){019case1:020$err_info="上传的文件超过了php.ini中upload_max_filesize选项限制的值";021break;022case2:023$err_info="上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值";024break;025case3:026$err_info="文件只有部分被上传";027break;028case4:029$err_info="没有文件被上传";030break;031case6:032$err_info="找不到临时文件夹";033break;034case7:035$err_info="文件写入失败";036break;037default:038$err_info="未知的上传错误";039break;040}041042return$err_info;043die();044}045046047//2.判断上传文件类型是否合法048049if(count($typelist)>0){050if(!in_array($up_info['type'],$typelist)){051052$err_info='文件类型不合法!'.$up_info['type'];053return$err_info;054die();055}056}057058//4.判断上传文件大小是否超出允许值059060if($up_info['size']>$file_size){061062return$err_info='文件大小超过'.$file_size;063die();064}065066//5.上传文件重命名067068$exten_name=pathinfo($up_info['name'],PATHINFO_EXTENSION);069070do{071$main_name=date('YmHis'.'–'.rand(100,999));072$new_name=$main_name.'.'.$exten_name;073}while(file_exists($to_path.'/'.$new_name));074075//6.判断是否是上传的文件,并移动文件076077if(is_uploaded_file($up_info['tmp_name'])){078079if(move_uploaded_file($up_info['tmp_name'],$to_path.'/'.$new_name)){080081$err_info=$to_path.'/'.$new_name;082return$err_info;083die();084}else{085086return$err_info='上传文件移动失败!';087die();088089}090}else{091092return$err_info='这个文件不是上传文件!';093die();094}095096}097098//函数使用方法如下099100$multi_info=$_FILES;//接收$_FILES的全部上传信息101102$to_path='system';//上传文件的目标路径103104foreach($multi_infoas$name=>$up_info){//foreach遍历$multi_info105106$err_info=upload_fun($up_info,$to_path);//调用单文件上传函数107108p($err_info);//输出返回信息;109110}

『伍』 php多文件上传实现代码

这篇文章主要介绍了php多文件上传实现代码,需要的朋友可以参考下index_uploads.php 代码如下:<html><head><metacharset="utf-8"><title>index_uploads</title></head><body><formaction="uploads.php"method="post"enctype="multipart/form-data"><inputtype="file"name="file[]"><br><inputtype="file"name="file[]"><br><inputtype="submit"value="uploads"></form></body></html>uploads.php 代码如下:<?phpheader("content-type:text/html;charset=utf-8");echo"<pre>";print_r($_FILES);echo"</pre>";$count=count($_FILES['file']['name']);for($i=0;$i<$count;$i++){$tmpfile=$_FILES['file']['tmp_name'][$i];$filefix=array_pop(explode(".",$_FILES['file']['name'][$i]));$dstfile="uploads/files/".time()."_".mt_rand().".".$filefix;if(move_uploaded_file($tmpfile,$dstfile)){echo"<script>alert('succeed!');window.location.href='index_uploads.php';</script>";}else{echo"<script>alert('fail!');window.location.href='index_uploads.php';</script>";}}核心:<1>上传首页中input的name属性是这么设置的。 <2>用while循环上传多文件。

『陆』 PHP 批量上传文件

把HTML改成下面的:<form method="post"> action="#" enctype="multipart/form-data"><input type="file" name="f1" /> <input type="file" name="f2" /> <input type="file" name="f3" /> <input type="file" name="f4" /> <input type="file" name="f5" /> <input type="submit" value="批量上传"></form>php代码思路如下:<?$files=0;//初始化上传了几个文件上来for($upi=1;$upi<6;$upi++){$upfile=$_FILES['f'.$upi];if (!empty($upfile['name'])){$files++;//如果有一文件域里有文件,文件数自加//PHP上传程序}}?>

『柒』 php上传为什么不能多文件上传

html代码

<html><head><title></title></head><body><formenctype="multipart/form-data"action="do_upload.php"method="POST"><!–表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.–><fieldset><legend>图片上传</legend>第一张图片<inputname="userfile"type="file"><br>第二张图片<inputname="userfile"type="file"><br>第三张图片<inputname="userfile"type="file"><br>第四张图片<inputname="userfile"type="file"><br>第五张图片<inputname="userfile"type="file"><br><!–数组的形式传递数据–><inputtype="submit"value="SendFile"></fieldset></form></body></html>

2、do_upload.php页面,即处理多文件上传的页面:

<?php//全局数组$_FILES//$_FILES['userfile']['tmp_name']文件在web服务器中临时存储的位置//$_FILES['userfile']['name']用户系统中的文件名称//$_FILES['userfile']['size']文件的字节大小//$_FILES['userfile']['type']文件的MIME类型,text/plain,image/gif//$_FILES['userfile']['error']与文件上载相关的错误代码?><?php//用for循环来获取传递的数据,是一个三维数据for($i=0;$i<count($_FILES['userfile']['tmp_name']);$i++){$upfile=$new_folder."/".$_FILES['userfile']['name'][$i];//此处可以根据自己的需要修改if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$upfile)){echo"第".($i+1)."张图片上传成功<br>";}else{echo"第".($i+1)."张图片上传不了<br>";}}?>

3、运行截图

『捌』 php实现:一次选择多个文件上传

input加入multiple属性即可。ie浏览器有些版本不兼容。参考:http://www.cnblogs.com/Zjmainstay/archive/2012/08/11/jQuery_upload_multiple_images.html

『玖』 php 多个文件上传问题

PHP多文件上传要把input的name写成filename[]然后 —– var_mp($_FILES['name']['filename']);

未经允许不得转载:山九号 » php多文件上传|php 批量大文件上传下载如何实现

赞 (0)