多文件批量上传

在网站后台开发中并经常需要和上传打交道,而单一的上传方式已经不适合,大量相似类型的文件批量上传,那如何做到呢?

(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 



时间就像牙膏,只要挤,总会有的!


猜你喜欢

转载自blog.csdn.net/wu5229485/article/details/79826478