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

Форум PHP

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

 

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

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

тема: Как организовать загрузку нескольких файлов
 
 автор: technic611   (05.01.2006 в 05:22)   письмо автору
 
 

Спецы, как сделать так, чтобы пользователь смог загрузить через форму не одну, а штук 15-30 фотографий одновременно. Такое же нужно проделать с файлами.

   
 
 автор: aalexx   (05.01.2006 в 11:42)   письмо автору
 
   для: technic611   (05.01.2006 в 05:22)
 

Вот код которым я воспользовался в одном из своих проэктов:

<?php
  
if(isset($perm) and $perm=="Y")
    {
    
//Upload файлов
      
if (move_uploaded_file($_FILES['userfile']['tmp_name'][0], $my->PATH_SCRIPT_PIC."/" $_FILES['userfile']['name'][0]))
        {
          echo 
"Файл ".$_FILES['userfile']['name'][0]." успешно закачан...";
        }
      else
        {
          echo 
"Какие то ошибки...";
        }
      if (
move_uploaded_file($_FILES['userfile']['tmp_name'][1], $my->PATH_SCRIPT_PIC."/" $_FILES['userfile']['name'][1]))
        {
           echo 
"Файл ".$_FILES['userfile']['name'][1]." успешно закачан...";
        }
      else
        {
          echo 
"Какие то ошибки...";
        }
        .......
      if (
move_uploaded_file($_FILES['userfile']['tmp_name'][30], $my->PATH_SCRIPT_PIC."/" $_FILES['userfile']['name'][30]))
        {
           echo 
"Файл ".$_FILES['userfile']['name'][30]." успешно закачан...";
        }
      else
        {
          echo 
"Какие то ошибки...";
        }
    }

  <
form action="<?php $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
     <
input type="hidden" name="MAX_FILE_SIZE" value="150000">
     
Файл картинки1: <input name="userfile[]" type="file" size="55">
     
Файл картинки2: <input name="userfile[]" type="file" size="55">
     ...
     
Файл картинки30: <input name="userfile[]" type="file" size="55">
     <
INPUT TYPE="HIDDEN" NAME="permition" VALUE="Y">
     <
input type="submit" name="Submit" value="Загрузить..."/>
  </
form>
?>

   
 
 автор: Loki   (05.01.2006 в 13:43)   письмо автору
 
   для: aalexx   (05.01.2006 в 11:42)
 

>Вот код которым я воспользовался в одном из своих проэктов:
Мне однажды рассказали одну программистскую байку, где фигурировал очень похожий код. Я тогда воспринял это просто как анекдот, но теперь верю что пример был взят из жизни!;)

Вы о циклах ничего не слышали?

   
 
 автор: aalexx   (05.01.2006 в 14:31)   письмо автору
 
   для: Loki   (05.01.2006 в 13:43)
 

Код упрощен до предела, чтоб человеку было понятнее все лишнее я выкинул. Главное чтобы он понял сам механизм а уж минимизация кода дело его принципов.

   
 
 автор: technic611   (06.01.2006 в 04:19)   письмо автору
 
   для: Loki   (05.01.2006 в 13:43)
 

А что там насчет циклов. Это лучше?

   
 
 автор: cheops   (06.01.2006 в 13:33)   письмо автору
 
   для: technic611   (06.01.2006 в 04:19)
 

Если вы интересуетесь циклом, то можете воспользоваться следующим скриптом. Он позволяет загрузить произвольное количество файлов на сервер (является ответом на одно из заданий нашей новой книги "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>"
;
  }
?>

   
Rambler's Top100
вверх

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