2011-10-19 72 views
0

我正在爲客戶構建一個簡單的CMS。他們需要管理員工檔案的能力。PHP - 多文件上傳

每個配置文件都需要一個圖像。

目前我有一個單獨的記錄增加員工和關聯上傳圖像的形式很容易。

下面記錄添加的形式,我的現有記錄(和圖像的縮略圖)的列表。這些記錄打印在表單標記之間,每個記錄旁邊都有一個複選框(標記爲表單提交時會將其刪除)。

我想用這個表格來更新記錄;首先刪除,然後$_POST數據被解析並記錄更新。

當記錄沒有與之相關聯的圖像,而不是一個縮略圖,一個文件輸入的標籤被打印。由於記錄數量可變,因此文件標籤全部命名爲image[],因此我可以輕鬆地遍歷它們。

問:我怎麼關聯$_FILES數據與$_POST數據?是否必須將每個文件輸入的名稱命名爲image_<?=$record_id?>以確定文件屬於哪個記錄?

回答

0

代替

<input name="image[]"> 

使用assocative陣列,爲前:

<input name="image[id_<?=$record_id?>]"> 
1

您的解決方案看起來不錯,我想補充記錄ID爲指標,爲前:

image[<?=$record_id?>]; 

然後您可以按數組索引關聯

0

使用默認的fieldname[]表示法,您無法控制PHP分配給POST/GET/REQUEST/FILES中服務器端表示法的索引。 PHP將只是依次添加它們,如果表單中有空白,一旦數據到達服務器,它就會消失。

您可以,然後,FORCE索引,以便fieldname[7]newimage[7]都與您的窗體中相同的字段集有關。

0

您將需要命名每個文件的輸入,並通過$FILES['unique_name']訪問它。