2016-02-22 18 views
5

Mam UI tak:
enter image description hereJak mogę przesłać kilka zdjęć przy użyciu Ajax w PHP

Chcę przesłać kilka filmów przy użyciu Ajax w PHP. W tym celu wypróbowałem FormData() w jQuery. Ale przesyła tylko jeden obraz, nie więcej.

Mój plik Postać:

<form enctype="multipart/form-data" action="/test.php" 
method="post" class="putImages"> 
    <input name="media[]" type="file" multiple/> 
    <input class="button" type="submit" alt="Upload" value="Upload" /> 
    <button type="button" id="add"></button> 
</form> 

Mój plik jQuery:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#add").click(function() { 
      var $div = $('div[id^="inputdiv"]:last'); 
      var num = parseInt($div.prop("id").match(/\d+/g), 10) + 1; 
      var $klon = $div.clone().prop('id', 'inputdiv' + num).appendTo("#athleteRegister").insertBefore("#submitbutton"); 
      $('#inputdiv' + num).find("input").attr('name', 'file[' + num + ']'); 
      $('#inputdiv' + num).find("input").val(""); 
      $('#inputdiv' + num).find("input").attr('id', 'file' + num); 
      $('#inputdiv' + num).find("input").css("outline", "none"); 
      $('#inputdiv' + num).find("div.col-sm-1 i").attr('class', 'fa fa-minus'); 
      $('#inputdiv' + num).find("div.col-sm-1 button").attr('id', 'remove'); 
      $('#inputdiv' + num).find("img").attr('alt', 'remove'); 
     }); 
     $('#sub').click(function() { 
      jQuery.each($('input[name^="media"]')[0].files, function(i, file) { 
       data.append('file-' + i, file); 
      }); 
      $.ajax({ 
       type: 'POST', 
       data: data, 
       url: "../admins/test", 
       cache: false, 
       contentType: false, 
       processData: false, 
       success: function(data) { 
        alert(data); 
       } 
      }); 
     }); 
    }); 
</script> 

Czy ktoś może rozwiązać ten problem? Dzięki!

+1

Proszę używać 'serializeArray()' wysłać wejść na stronę serwera. Możesz też użyć wtyczek innych firm, takich jak ten https://blueimp.github.io/jQuery-File-Upload/ – Nisam

+0

@Nie muszę wykonywać tego przy użyciu powyższego kodu –

Odpowiedz

1

Do przesyłania plików ajax polecam używanie dropzone.js. Ma fantastyczną dokumentację i elastyczność jest świetna.

Powiązane problemy