В общем formdata у вас конкретно одна, что вы еще называете формой я не понял. И под эту одну форму заточен соответственно процессинг. Если вы хотите добавить туда несколько кнопок file то надо просто добавить в их имя вот такой текст [] - в конец имени. И соответственно во всех скриптах - js и php - обеспечить обработку еще одного измерения массива. А ну да, в js не надо если все сделано на событиях - я из этой каши не понял как сделано. А в php надо.
Вот так надо рендерить, чтобы получилось вот так:
<input type="file" id="userfile" name="userfile[]" />
Про id я не знаю, если js на event'ах ему пофигу id, а если нет - то id как name.
Затем в php (хрень про whitelist - в газенваген, это все проверяется в рабочем цикле)
Код:
|
foreach($_FILES['userfile'] as $uploadedFile)
$folder.$file_name."_".basename($uploadedFile['name']);
// ну или типа того, я всегда забываю устройство $_FILES |
потому что один раз написал функцию транспозинга и с тех пор не помню как он устроен.
Она существует в туевой хуче вариантов, у меня в таком, который цепляет файлы в $_POST (гетом как-то не приходилось еще файлы передавать)
Код:
|
public function get_postfiles($table=null) {
if(!$table)
$table=$this->table_name;
$post=array();
if(!empty($_POST) && isset($_POST[$table]))
$post=$_POST[$table];
if(!empty($_FILES) && isset($_FILES[$table])) {
foreach($_FILES[$table] as $field=>$values)
foreach($values as $index=>$value)
if(is_array($value))
foreach($value as $i=>$v)
$post[$index][$i][$field]=$v;
else
$post[$index][0][$field]=$value;
}
return (empty($post))?null:$post;
} |