Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка нескольких файлов
 
 автор: Kusuk   (12.03.2006 в 21:39)   письмо автору
 
 

Видел такую фишку в net2ftp
Там при выборе одного файла появляется ещё одно поле для выбора файла.
Как это можно реализовать?

   
 
 автор: JIEXA   (12.03.2006 в 23:08)   письмо автору
 
   для: Kusuk   (12.03.2006 в 21:39)
 

Как загрузить несколько файлов описывается на официальной сайте http://ru.php.net/manual/ru/features.file-upload.multiple.php

   
 
 автор: cheops   (13.03.2006 в 01:38)   письмо автору
 
   для: Kusuk   (12.03.2006 в 21:39)
 

Можно модифицировать или воспользоваться прямо так, следующим кодом
<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>"
;
  }
?>

   
 
 автор: Kusuk   (13.03.2006 в 13:45)   письмо автору
 
   для: cheops   (13.03.2006 в 01:38)
 

Буду модифицировать ))
А так, то что нужно. Спасибо

   
 
 автор: Kusuk   (13.03.2006 в 14:14)   письмо автору
 
   для: Kusuk   (13.03.2006 в 13:45)
 

В Яве не силён..
Если у нас одно поле, то принажатие на МИНУС оно убирается...
Как сделать что бы оно оставалось?

   
 
 автор: Kusuk   (13.03.2006 в 14:30)   письмо автору
 
   для: Kusuk   (13.03.2006 в 14:14)
 

Сделал вот так.

 <input name="att[]" type="file" size="100" maxlength="350"  onChange="addFile(this);">

Т.е. при выборе картинки, появляется новое поле для выбора.

Но как теперь приделать к новым полям МИНУС что бы их можно было удалять?

   
 
 автор: Kusuk   (15.03.2006 в 13:34)   письмо автору
 
   для: Kusuk   (13.03.2006 в 14:30)
 

Никто не поможет??

   
 
 автор: Mootch   (15.04.2006 в 14:09)   письмо автору
 
   для: cheops   (13.03.2006 в 01:38)
 

А зачем в addFile(btn) нужно писать


thisChilds = newTr.getElementsByTagName('td');
    for (var i = 0; i < thisChilds.length; i++)
    {
      if (thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="foto[]" class="input" type="file">';
    }


?

Ведь и без этого все хорошо работает.

   
 
 автор: Mootch   (17.04.2006 в 22:40)   письмо автору
 
   для: cheops   (13.03.2006 в 01:38)
 

Как сделать ограничение на количество добавляемых полей загрузки файлов?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования