0

对此的任何见解将不胜感激。基本上我有一个文件上传表单,用户可以一次上传 5 个文件。上传时,我添加了 3 个字母和一个时间戳。如果选中,我想将复选框值插入文件名:

 <form id="form" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data">
<input name="file_up[]" type="file" class="file_up" size="16" maxlength=" " />
   CA<input name="state[]" type="checkbox" id="CA" value="CA" checked="checked" />
   NV<input name="state[]" type="checkbox" id="NV" value="NV" />
   UT<input name="state[]" type="checkbox" id="UT" value="UT" />
   AZ<input name="state[]" type="checkbox" id="AZ" value="AZ" />
<input name="file_up[]" type="file" class="file_up" size="16" maxlength=" " />
   CA<input name="state[]" type="checkbox" id="CA" value="CA" checked="checked" />
   NV<input name="state[]" type="checkbox" id="NV" value="NV" />
  UT<input name="state[]" type="checkbox" id="UT" value="UT" />
   AZ<input name="state[]" type="checkbox" id="AZ" value="AZ" />

对于每个文件字段上传,有 5 个这样的块。其他 3 个有 state2[] 等。

在文件名部分:

$updir . '/'.'337-'.implode("", $_POST['state']).$timestamp. $nume_f

我怎样才能得到每一行的“状态”值?因此,如果在第一行选择 CA,只需将该 CA 添加到第一个文件,而不是其他文件。它没有分隔复选框行。我想也许可以将第二组复选框设置为 state1,然后设置为第三组 state2,等等。

文件循环是:

if (isset($_FILES['file_up'])) {
for($f=0; $f<count($_FILES['file_up']['name']); $f++)   {
$nume_f = $_FILES['file_up']['name'][$f];

感谢您在第 1 篇文章中的回复,这是第 3 次编辑。

想法?谢谢!——兰迪

EDIT:  The solution was to tie $f=0, $f=1, etc to a new variable:
 if($f == 0)$nume_g = ($_POST['state1']);
 if($f == 1)$nume_g = ($_POST['state2']); etc..

所以每个复选框组都与文件名相关联。感谢所有的投入,兰迪

4

1 回答 1

0

代替

$_POST['state']

, 写

implode("", $_POST['state']).

Implode 将数组字段合并为字符串,第一个参数作为分隔符。检查http://php.net/manual/en/function.implode.php

于 2013-01-13T22:29:29.407 回答