Jak przesłać wiele plików przy użyciu PHP, jQuery i AJAX

Zaprojektowałem prosty formularz, który pozwala użytkownikowi przesyłać pliki na serwer. Początkowo formularz zawiera jeden przycisk „Przeglądaj”. Jeśli użytkownik chce przesłać wiele plików, musi kliknąć przycisk „Dodaj więcej plików”, który dodaje kolejny przycisk „Przeglądaj” w formularzu. Po przesłaniu formularza proces przesyłania plików jest obsługiwany w pliku „upload.php”. Działa doskonale do przesyłania wielu plików. Teraz muszę przesłać formularz za pomocą polecenia .submit () jQuery i wysłać żądanie ajax ['.ajax ()'] do pliku „upload.php”, aby obsłużyć przesyłanie plików.

Oto mój formularz HTML:

<form enctype="multipart/form-data" action="upload.php" method="post">
    <input name="file[]" type="file" />
    <button class="add_more">Add More Files</button>
    <input type="button" id="upload" value="Upload File" />
</form>

Oto JavaScript:

$(document).ready(function(){
    $('.add_more').click(function(e){
        e.preventDefault();
        $(this).before("<input name='file[]' type='file' />");
    });
});

Oto kod do przetwarzania przesyłania plików:

for($i=0; $i<count($_FILES['file']['name']); $i++){
$target_path = "uploads/";
$ext = explode('.', basename( $_FILES['file']['name'][$i]));
$target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext)-1]; 

if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {
    echo "The file has been uploaded successfully <br />";
} else{
    echo "There was an error uploading the file, please try again! <br />";
}

}

Wszelkie sugestie dotyczące sposobu, w jaki powinienem napisać funkcję „.submit ()”, będą naprawdę pomocne.

questionAnswers(4)

yourAnswerToTheQuestion