Мульти-загрузчик фото

Discussion in 'PHP' started by geforse, 8 Aug 2009.

  1. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Прошу помощи )

    Помогите найти мульти загрузчик изображений на сервер (технология впринципе не важна, главное результат)

    Гугл выдал один а ajax, но что-то он мне не понравился)

    кто чем пользуется на своих сайтах ?
     
    2 people like this.
  2. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    спасибо попробую

    я JS вобще не знаю) этот шаг можно в виде кода ?)
     
    1 person likes this.
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Вроде того
    PHP:
    <script>
    function 
    add()
        {
         var 
    form document.getElementById('list');
         
    form.innerHTML += '<input type="file"><br>';
        }
    </script>

    <form method="post">
    <div id="list">
        <input type="file"><br>
    </div>
    <input type="button" value="Add" onclick="javascript:add()">
    <input type="submit" value="OK">
    </form>
     
    _________________________
    5 people like this.
  4. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <script language='javascript'>

    function Add_File(a,b)
    {
      var files = document.getElementById('files');
      var file = document.createElement('input');
      var line = document.createElement('br');
      
      file.setAttribute('type', 'file');
      file.setAttribute('name', 'file[]');

      files.appendChild(line);
      files.appendChild(file);
    }

    </script>

    <form enctype="multipart/form-data" name="upload" method="post" action="?">
      Files: <a href="javascript:Add_File();">Добавить файл</a>
      <br>
      <br>
      <div id="files">
        <input type="file" name="file[]">
      </div>
      <br>
      <input type="submit" value="Отправить">
    </form>

    <?php

    if (isset($_FILES['file']))
    {
      
    print_r($_FILES);
    }

    ?>
    В итоге к нам приходит в массиве $_FILE['file'] что-то типа :
    Code:
    Array
    (
        [file] => Array
            (
                [name] => Array
                    (
                        [0] => File1.xls
                        [1] => File2.CTF
                        [2] => File3.txt
                    )
    
                [type] => Array
                    (
                        [0] => application/vnd.ms-excel
                        [1] => application/octet-stream
                        [2] => text/plain
                    )
    
                [tmp_name] => Array
                    (
                        [0] => C:\Temp\php\php7027.tmp
                        [1] => C:\Temp\php\php7047.tmp
                        [2] => C:\Temp\php\php7113.tmp
                    )
    
                [error] => Array
                    (
                        [0] => 0
                        [1] => 0
                        [2] => 0
                    )
    
                [size] => Array
                    (
                        [0] => 388608
                        [1] => 5613444
                        [2] => 221
                    )
    
            )
    
    )
    
    После проверки на size > 0 и error == 0 и расширения или типа файла - делаем move_upload_file и присваиваем имя
     
    1 person likes this.
  5. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    всем спасибо :)

    Написал "рабочий" код, который загружает почему-то не больше 5 картинок за раз

    PHP:
    $files_count sizeof($_FILES['file']['name']);
      
    for (
    $i 0$i $files_count$i++) {...}
    Этот код загружает только 5 картинок :(

    Наврятли ведь массив $_FILES['file']['name'] ограничен пятью "слотами" или я не прав ?
     
  6. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    нет, точно не из-за этого
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 100M
     
  7. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    может кому-то поможет)

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 99M



    ; Maximum size of POST data that PHP will accept.
    post_max_size = 100M


    всё заработало :)
     
  8. bendep

    bendep New Member

    Joined:
    10 Apr 2008
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Еще можно JQ применить получается довольно интересная штука.
     
  9. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Очень неплох
    demo.swfupload.org/v220/multiinstancedemo/index.php

    Симпатичный, удобный простой в установке
    Вот только, для 10 версии флеш, несовместим с 9
    Использую очень долго, не жулуюсь, правдв иногда проглючивает старт загрузки(нужно несколько раз нажать кнопку загрузить), но редко