在网站后台开发中并经常需要和上传打交道,而单一的上传方式已经不适合,大量相似类型的文件批量上传,那如何做到呢?
时间就像牙膏,只要挤,总会有的!
(1)当然第一步首先得封装下文件上传的基本函数uploadFiles()方法
(2)第二步,那就编辑简单的上传的表单吧?
(3)第三步编写php doAction3.php 方法 执行函数?
首先打印上传后的$_FILES :
你们就会发现,这些都是不规则的上传信息,没办法通过uploadFiles()方法统一上传,那如何调整成可重复利用有规律的数组模式呢?下面展示目标结构:
上面的数据结构就可以通过uploadFiles()方法遍历上传了!!
那如何做到的呢?
function crateNewFilesArray($files) { $arr_item = array(); $arr_All = array(); $num = 0; foreach ($files as $my_file) { //单文件 ( 多文件则对应数组类型 ) if (is_string($my_file['name'])) { $arr_All[$num] = $my_file; $num++; } else { for ($j = 0; $j < count($my_file['name']); $j++) { $arr_item = []; foreach ($my_file as $key => $my_item) { $arr_item[$key] = $my_item[$j]; } $arr_All[$num++] = $arr_item; } } } return $arr_All; }
主体思想就是单文件,多文件分开处理;需要判断当前处理的信息是单文件信息,还是多文件信息,而判断的依据就是 $my_file['name'] 是否为字符串?如果是字符串,就是单文件,如果不是,那肯定就是数组类型啦,所以就可分开处理啦!当然这里面也会用到一个公共的下标 $num
![](http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6795EN00SIGG.gif)