Вопрос, как через один <inpu type='file'> загружать неограниченное кол-во файлов, ну чтобы порльзователь выделял нужные и грузил
жаль... а как можно организовать,загрузку большого кол-ва файлов на серв, и чтобы миниму затрат для пользователя(разумеется через веб-интерфейс)
при заполнении поля файл, можно добавлять новое пустое поле с тем же инпут, но др. именем. и т.о. передать массив файлов. самый оптимальный вариант, который я видел на сегодня -)
я делал через FLASH, есть в нем такая возможность выделяешь кучу файлов и грузишь их на сервак. SWFUpload поищи. Там все просто, хотя есть свои заморочки - например из-за прокси с авторизацией я не смог добиться его работы.
Нужно динамику в форме =) Получается что-то типа как на мэил[дот]ру PHP: <form enctype='multipart/form-data' method=post> <table> <tr> <td><input type="file" size="32" name="att[]" class=input></td> <td><input type="button" name="drop" value=" − " onclick="dropFile(this);"> <input type="button" value=" + " onclick="addFile(this);"></td> </tr> </table> <input class=button type=submit value='Загрузить'> </form> <script language='JavaScript1.1' type='text/javascript'> <!-- function dropFile(btn) { if(document.getElementById) { while (btn.tagName != 'TR') btn = btn.parentNode; btn.parentNode.removeChild(btn); } } function addFile(btn) { if(document.getElementById) { while (btn.tagName != 'TR') btn = btn.parentNode; var newTr = btn.parentNode.insertBefore(btn.cloneNode(true),btn.nextSibling); thisChilds = newTr.getElementsByTagName('td'); for (var i = 0; i < thisChilds.length; i++) { if (thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="att[]" class=input type="file">'; } } } //--> </script> <?php // Обработчик HTML-формы // Загружаем все файлы на сервер for($i = 0; $i < count($_FILES['att']['name']); $i++) { // Перемещаем файл из временной директории сервера в // директорию /files Web-приложения if (copy($_FILES['att']['tmp_name'][$i], "files/".$_FILES['att']['name'][$i])) { // Уничтожаем файл во временной директории unlink($_FILES['att']['tmp_name'][$i]); // Изменяем права доступа к файлу chmod("files/".$_FILES['att']['name'][$i], 0644); } } // Осуществляем автоматическую перезагрузку страницы // если содержимое суперглобального массива $_POST // не является пустым if(!empty($_POST)) { echo "<HTML><HEAD> <META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_SERVER['PHP_SELF']."'> </HEAD></HTML>"; } ?>