Я использую файл загрузки ввода с multiple
приписывать. Вывод моего $ _FILES выглядит следующим образом:
[kadFile] => Array
(
[name] => Array
(
[0] => Txt1.txt
[1] => Doc1.docx
)
[type] => Array
(
[0] => text/plain
[1] => application/vnd.openxmlformats-officedocument.wordprocessingml.document
)
[tmp_name] => Array
(
[0] => C:\wamp\tmp\phpE515.tmp
[1] => C:\wamp\tmp\phpE525.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 824
[1] => 768066
)
)
Есть ли способ идентифицировать эти файлы, дав им определенное имя, скажем, через javascript или любым другим способом, чтобы они были POST-ED следующим образом:
[kadFile] => Array
(
[name] => Array
(
["kadFile_txt1"] => Txt1.txt
["kadFile_doc1"] => Doc1.docx
) ...
Мне нужно передать определенные свойства каждому файлу, создавая динамические поля ввода, когда файлы выбраны, эти поля имеют соглашение об именах (имя ввода файла + имя выбранного файла + идентификатор конкретного поля). На уровне сервера мне нужно сохранить каждый файл и добавить эти дополнительные свойства одним выстрелом.
Вы можете создать ассоциативный массив, если вы хотите, чтобы сохранить настройки. Тогда лечи $new
вместо $_FILES
массив, что-то вроде этого:
foreach($_FILES['kadFile']['name'] as $key => $value) {
// This is not the greatest of regex, but works for your example
preg_match('/([^\.]+).([0-9a-zA-Z]{3})/',$value,$exp);
$nKey = $exp[1];
$new['kadFile']['name']["kadFile_".$nKey] = $value;
$new['kadFile']['tmp_name']["kadFile_".$nKey] = $_FILES['kadFile']['tmp_name'][$key];
$new['kadFile']['error']["kadFile_".$nKey] = $_FILES['kadFile']['error'][$key];
$new['kadFile']['size']["kadFile_".$nKey] = $_FILES['kadFile']['size'][$key];
}
echo print_r($new);
AFAIK, вы не можете изменить имена загруженных файлов с помощью JavaScript. Вы думали об использовании отдельных файловых элементов управления?
ИЛИ на JavaScript, я думаю, вы можете добавить скрытые поля на менять событие управления файлом.
Я бы создал скрытые поля с именем как hdn_"fileName"
и значение как то, что вы хотите сохранить.
Затем, когда вы начинаете цикл по файлам в $_FILES
Вы можете получить доступ к этим скрытым значениям полей (на основе текущего имени файла) из $_POST
и делай что хочешь.