Массив $ _Files [] показывает только первый загруженный файл - PullRequest
2 голосов
/ 23 октября 2010

В настоящее время у меня есть форма с одним входом для загрузки файла.

исходный ввод формы, который я пробовал

<input type="file" name="userFile[]" />  
and  
<input type="file" name="userFile1" />

У меня также есть ссылка для создания дополнительных полей вводаиспользуя

Если уже пробовали методы:
a)

counter = 1;  
    function addInput(){  
counter ++;  
    $('#divName').append('&lt;input type="file" name="userFile[]" ' />);        
}

b)

var counter = 1;  
function addInput(){  
counter++;   
$('#divName').append('&lt;input type="file" name="userFile'+counter+'" ' />);   
}

Я не думаю, что проблема связана с JS здесь, новозможно сервер я думаю.

Проблема в том, что когда я наконец нажимаю кнопку Submit и передаю файлы на сервер и пытаюсь получить доступ ко всем значениям $_FILES['userFile']['name'] / ['size'] / ['error'] и т. д.,только самые первые исходные значения загрузки формы могут быть отображены / напечатаны.Я пытался загрузить файлы большого размера для тестирования. Я знаю, что все файлы загружаются, но как только они попадают на серверную часть, к ним можно получить доступ только к одному.

Может кто-нибудь подсказать мне, что может происходить?Я надеюсь, что объяснил это правильно, задавайте мне любые вопросы, если вам нужны разъяснения.

больше информации

после еще одного тестирования похоже, что Jquery может быть проблемой после всех,В вышеупомянутом способе дублирования полей при загрузке файлов распознается только первый исходный ввод.

Но если я создаю три исходных поля ввода и загружаю в них как обычно, тогда все файлы в $_FILES Массив распознается так, как и должно быть.

Так почему сгенерированные jQuery поля не публикуются в форме?

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Я нашел этот пост, а затем нашел ответ, к сожалению, довольно простой.

jПросьба не публиковать все входные данные формы после .append ()

Мне просто нужно было переместить элемент за пределы таблицы с моими данными, и тогда все заработало.Я не уверен почему, но это интересно.Спасибо за тех, кто помог.

0 голосов
/ 11 декабря 2011

У меня была та же проблема. Все мои усилия были напрасны, но в конце концов я нашел довольно хорошую заметку в руководстве по PHP. Это просто, но подходит мне идеально ...

"Многократная загрузка может не работать, если вы используете таблицу для отображения формировать входные данные, когда элемент <form> равен внутри элемента <table>. В этом case будет загружен только первый файл .

Поместите элемент <form> снаружи , чтобы заставить его работать. "

Перейдите по этой ссылке для полной заметки, есть функция, позволяющая упорядочить массив файлов с несколькими загружаемыми файлами.

http://php.net/manual/en/features.file-upload.multiple.php

...