2011-10-19 74 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']访问它。