发布文件对象:非法调用

时间:2015-10-07 18:52:07

标签: javascript php jquery ajax

我想将多个图片对象发布到testphp.php。但控制台打印错误说非法调用。

我试过了:

<script type="text/javascript" src="/script/googleapis.js"></script>


<input multiple type="file" id="myFile" size="50">

<div id="sub">submit</div>

<div id="testtest"></div>

<script>
$("#sub").click(function(){
    // get the file objects
    var files = $("#myFile")[0].files;
    for (var i = 0; i < files.length; i++){
    //test if the files[i] has the file objects
    console.log(files[i]);
    //post objects to another php file
    $.post("testphp.php", {img: files[i]}, function(result){
                                $("#testtest").html(result);
                            });
    }


})

1 个答案:

答案 0 :(得分:1)

你不能这样做。如果您要发布文件,则需要使用FormData

我还建议一次上传所有文件,而不是一次发布一个。

要发布FormData,您需要使用$.ajax代替。

$("#sub").click(function(){
    // get the file objects
    var files = $("#myFile")[0].files,
        data = new FormData;

    for (var i = 0; i < files.length; i++){
        //test if the files[i] has the file objects
        console.log(files[i]);
        //post objects to another php file
        data.append('img[]', files[i]);
    }

    $.ajax({
        url: "testphp.php",
        type: "POST",
        data: data,
        contentType: false,
        processData: false,
        success: function(result){
            $("#testtest").html(result);
        }
    });
});

现在在PHP中,如果要上传多个文件,则$_FILES['img']['name'](以及其他键)可能是数组。