Javascript Ajax上载只将第一个文件传递到php文件

Javascript Ajax上载只将第一个文件传递到php文件,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我试图在一个输入字段中上载多个文件。到目前为止,代码仍然有效,但它只是将第一个文件发送到upload.php文件。我正在使用jQuery HTML: <input id="carica" type="file" name="carica[]" multiple="true"/> <button type="button" id="upload_sub" class="button">Carica</button> $("#upload_sub").click

我试图在一个输入字段中上载多个文件。到目前为止,代码仍然有效,但它只是将第一个文件发送到upload.php文件。我正在使用jQuery

HTML:

<input id="carica" type="file" name="carica[]" multiple="true"/>
<button type="button" id="upload_sub" class="button">Carica</button>
$("#upload_sub").click(function() {

        $.ajax({
            url: "./src/upload.php",
            type: "POST",
            contentType: false,
            processData: false,
            data: function() {
                var data = new FormData();
                data.append("carica", $("#carica").get(0).files[0]);
                return data;
                // Or simply return new FormData(jQuery("form")[0]);
            }(),
            error: function(_, textStatus, errorThrown) {
                alert("Error");
                console.log(textStatus, errorThrown);
            },
            success: function(response, textStatus) {
                alert("Success");
                console.log(response, textStatus);
            }
        });
    });
print_r ($_FILES);
Array
(
    [carica] => Array
        (
            [name] => prova.pdf
            [type] => application/pdf
            [tmp_name] => /tmp/phpvIlTeL
            [error] => 0
            [size] => 7234
        )

)
 success 
PHP:

<input id="carica" type="file" name="carica[]" multiple="true"/>
<button type="button" id="upload_sub" class="button">Carica</button>
$("#upload_sub").click(function() {

        $.ajax({
            url: "./src/upload.php",
            type: "POST",
            contentType: false,
            processData: false,
            data: function() {
                var data = new FormData();
                data.append("carica", $("#carica").get(0).files[0]);
                return data;
                // Or simply return new FormData(jQuery("form")[0]);
            }(),
            error: function(_, textStatus, errorThrown) {
                alert("Error");
                console.log(textStatus, errorThrown);
            },
            success: function(response, textStatus) {
                alert("Success");
                console.log(response, textStatus);
            }
        });
    });
print_r ($_FILES);
Array
(
    [carica] => Array
        (
            [name] => prova.pdf
            [type] => application/pdf
            [tmp_name] => /tmp/phpvIlTeL
            [error] => 0
            [size] => 7234
        )

)
 success 
输出:

<input id="carica" type="file" name="carica[]" multiple="true"/>
<button type="button" id="upload_sub" class="button">Carica</button>
$("#upload_sub").click(function() {

        $.ajax({
            url: "./src/upload.php",
            type: "POST",
            contentType: false,
            processData: false,
            data: function() {
                var data = new FormData();
                data.append("carica", $("#carica").get(0).files[0]);
                return data;
                // Or simply return new FormData(jQuery("form")[0]);
            }(),
            error: function(_, textStatus, errorThrown) {
                alert("Error");
                console.log(textStatus, errorThrown);
            },
            success: function(response, textStatus) {
                alert("Success");
                console.log(response, textStatus);
            }
        });
    });
print_r ($_FILES);
Array
(
    [carica] => Array
        (
            [name] => prova.pdf
            [type] => application/pdf
            [tmp_name] => /tmp/phpvIlTeL
            [error] => 0
            [size] => 7234
        )

)
 success 

循环浏览整个文件列表并发送所有文件

        data: function() {
            var data = new FormData();
            var files = $("#carica").get(0).files;
            for (var i = 0; i < files.length; i++){
                data.append("carica[]", files[i]);
            }
            return data;
        }(),
data:function(){
var data=new FormData();
var files=$(“#carica”).get(0).files;
对于(var i=0;i
保存了我的工作。非常感谢,我原以为
.get(0).files[0]
有问题,但由于我对jQuery的了解非常有限,我不知道如何操作。是的,正是这样!顺便说一句,下面的答案显示了我的问题的准确答案。