1. 程式人生 > >多檔案批量上傳

多檔案批量上傳

在網站後臺開發中並經常需要和上傳打交道,而單一的上傳方式已經不適合,大量相似型別的檔案批量上傳,那如何做到呢?(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 時間就像牙膏,只要擠,總會有的!