jquery ajax multiple upload - wysyłanie pojedynczych plików

Odpowiedz Nowy wątek
nowy12345
2016-08-17 19:56
nowy12345
0

Cześć,
mam wydaje się prosty problem. Chcę zrobić upload plików, który wysyła każdy plik oddzielnie. Chodzi o to, że używam

new FormData($('form')[0]);

ale to przesyła wszystkie pliki na raz.

W jaki sposób pobrać informację tylko o jednym pliku? (wiem, że mogę zrobić pętlę, ale czy da się jakoś obiektowo do tego podejść?)

<form enctype="multipart/form-data">
        <input name="file[]" type="file" multiple />
        <input type="submit" value="Upload" />
    </form>
$(document).ready(function (){
    $(':file').change(function(){

        var formData;
            formData = new FormData($('form')[0]);

            $.ajax({
                url: 'upload.php',  //Server script to process data
                type: 'POST',

                success: function(data){
                    alert('Wysyłanie zakończone powodzeniem: ' + data);
                },

                data: formData,
                cache: false,
                contentType: false,
                processData: false
            });

    });

});

W kodzie PHP mam zwykłe move_uploaded_file().

Pozostało 580 znaków

2016-08-17 20:14
Moderator

Rejestracja: 13 lat temu

Ostatnio: 3 tygodnie temu

Lokalizacja: Rzeszów

0

A $('input[type=file]')[0] nie podziała?
Jak nie to formData = new FormData(); formData.append('file[]', $('input[type=file]')[0]); zdecydowanie już powinno

Edit: Jeżeli chodzi Ci o wysłanie wszystkich plików, ale w kilku requestach to tak - musisz zrobić pętlę.


edytowany 1x, ostatnio: dzek69, 2016-08-17 20:15

Pozostało 580 znaków

nowy12345
2016-08-17 20:39
nowy12345
0

Tylko jak przesyłam jako:

formData = new FormData($('form')[0]);

to mogę pobrać wyniki wypisując:

$_FILES['file']['name'][0]; // 0 (zero) to numer kolejny pliku

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0