打開uploadsafe.inc.php文件,找到foreach($_FILES as $_key=>$_value)這句,這句前面是設(shè)置強(qiáng)制哪些文件類型可以上傳,并設(shè)置了一個(gè)數(shù)組$keyarr = array('name', 'type', 'tmp_name', 'size');數(shù)組$keyarr值正是$_FILES的鍵,這是為后面進(jìn)行數(shù)組遍歷作準(zhǔn)備。還對(duì)是不是通過編輯器上傳作了判斷。
在foreach($_FILES as $_key=>$_value)后面是重點(diǎn)了,通過foreach($_FILES as $_key=>$_value)我們可以得到$_key,這個(gè)$_key正是我們表單里面的類型為file的name屬性值,這一點(diǎn)非常重要。這句foreach($_FILES as $_key=>$_value)代碼就是為了得到這個(gè)$_key。為了進(jìn)一步說明這個(gè)$_key我們把$_FILES數(shù)組存儲(chǔ)的內(nèi)容分析一下,這里以單個(gè)文件上傳為例子,多個(gè)文件一樣。$_FILES存儲(chǔ)的內(nèi)容如下。
這句代碼foreach($_FILES as $_key=>$_value),正是為了獲得這個(gè)$_key就是$_FILES里面的upmyfile。接下來我們就要得到name,type,tmp_name,error,size了,我們完全可以再遍歷一下$_value,因?yàn)?_value又是一個(gè)數(shù)組,包括這些內(nèi)容,但是大家想一下,這只是單文件上傳,如果是一個(gè)多文件上傳,是不是比較重雜?是的,織夢(mèng)想到了一好辦法就是先定義一個(gè)$Keyarr數(shù)組,直接從這個(gè)數(shù)組里面獲取name,type,tmp_name,error,size,既簡(jiǎn)單,又方快速。
代碼foreach($keyarr as $k)這句正是為了獲取name,type,tmp_name,error,size內(nèi)容。