php如何实现一次性上传多个文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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遍历一次这个三维数组,得到的结果就又是二维数组,那么,就和上传一张图片一样一样的了 参考技术A foreach循环实现
常规下,php上传一张图片,页面上添加一个文件域,上传后,得到的数组是二维数组
转变一下,
页面上添加多个文件域,并且他们的name属性相同,而且是以数组形式提交(比如:name="file[]")
那么上传后,得到的是三维数组
而,php中,foreach循环对遍历数组那真是完美至极
用foreach遍历一次这个三维数组,得到的结果就又是二维数组,那么,就和上传一张图片一样一样的了本回答被提问者和网友采纳 参考技术B 我大胆的推测,楼主应该学习php时间不长,并且没有明显区分php能做什么,楼主应该问的是,人家那种点击上传出来一个文件选择框,可以选择很多文件的是怎么弄的,这个php是做不到的(其实那个单独上传一个文件也不是php的责任,php只负责你传给我后,我怎么去处理),swfupload,这是一个flash插件,有接口,国内一般都用这个,楼主可以去了解下
以上是关于php如何实现一次性上传多个文件的主要内容,如果未能解决你的问题,请参考以下文章