Показать сообщение отдельно
  #7 (permalink)  
Старый 09.10.2014, 12:23
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

В общем 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;

}

Последний раз редактировалось kostyanet, 09.10.2014 в 12:26.
Ответить с цитированием