Идентификация загрузки нескольких файлов

Я использую файл загрузки ввода с 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
) ...

Мне нужно передать определенные свойства каждому файлу, создавая динамические поля ввода, когда файлы выбраны, эти поля имеют соглашение об именах (имя ввода файла + имя выбранного файла + идентификатор конкретного поля). На уровне сервера мне нужно сохранить каждый файл и добавить эти дополнительные свойства одним выстрелом.

1

Решение

Вы можете создать ассоциативный массив, если вы хотите, чтобы сохранить настройки. Тогда лечи $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);
1

Другие решения

AFAIK, вы не можете изменить имена загруженных файлов с помощью JavaScript. Вы думали об использовании отдельных файловых элементов управления?

ИЛИ на JavaScript, я думаю, вы можете добавить скрытые поля на менять событие управления файлом.

Я бы создал скрытые поля с именем как hdn_"fileName" и значение как то, что вы хотите сохранить.

Затем, когда вы начинаете цикл по файлам в $_FILES Вы можете получить доступ к этим скрытым значениям полей (на основе текущего имени файла) из $_POST и делай что хочешь.

1

По вопросам рекламы [email protected]