Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Upload PHP (https://forum.antichat.xyz/showthread.php?t=51676)

Termin@L 22.10.2007 01:04

Upload PHP
 
Вопрос, как через один <inpu type='file'> загружать неограниченное кол-во файлов, ну чтобы порльзователь выделял нужные и грузил

ShAnKaR 22.10.2007 01:22

никак

Termin@L 22.10.2007 01:31

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

sw04 22.10.2007 02:04

при заполнении поля файл, можно добавлять новое пустое поле с тем же инпут, но др. именем. и т.о. передать массив файлов.
самый оптимальный вариант, который я видел на сегодня -)

romen 22.10.2007 09:56

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

r0 22.10.2007 11:39

Нужно динамику в форме =)
Получается что-то типа как на мэил[дот]ру
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=" &minus; " 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>"
;
  }
?>



Время: 00:33