如何使用 jQuery 和 xhr2 进行文件上传(返回空 $_FILES)

2024-01-02

我正在使用 $.ajax 方法和 xhr2 使用 $.ajax 方法上传文件。

当我将任何标准对象分配给 $.ajax 参数数据时,$_POST (php) 中将返回一个正确的非空数组。

JS:

data : {name:"john doe"}

PHP: print_r($_POST)

Array
(
    [name] => john doe
)

但是,当我将 formData 对象分配给参数数据以上传文件时,$_FILES (php) 中返回一个空数组

JS:

data : new FormData(document.getElementById('fileupload'))

PHP: print_r($_FILES)

Array
(
)

我的html代码是:

<form enctype="multipart/form-data">
<div id="myform">
    <input type="file" name="fileupload" id="fileupload" />

    <div id="submit">UPLOAD</div>
</div>
</form>

我的 jQuery 代码是:

$('#submit').click(function(){

    var formData = new FormData(document.getElementById('fileupload'));

    $.ajax({
           url : "upload.php",
           type: "POST",
           data : formData,
           xhr: function(){
                myXhr = $.ajaxSettings.xhr();
                return myXhr;
            },
           success: function(data, textStatus, jqXHR){
                console.log(data);
            },
           cache: false,
           contentType : false,
           processData: false
        });
});

你知道我的代码有什么问题吗?我不明白为什么文件没有被上传。感谢您的帮助。


var element = document.getElementById("fileupload");
        var myfiles= element.files;
        var data = new FormData();
        var i=0;
        for (i = 0; i < myfiles.length; i++) {
                                data.append('file' + i, myfiles[i]);
                            }

                     $.ajax({
                            url: 'load.php', 
                            type: 'POST',
                            contentType: false, 
                            data: data, 
                            processData: false, 
                            cache: false
                        }).done(function(msg) {
                           //do something
                        });

源代码: http://sw.solfin.net.co/index.php/programacion/php-y-jquery http://sw.solfin.net.co/index.php/programacion/php-y-jquery

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 jQuery 和 xhr2 进行文件上传(返回空 $_FILES) 的相关文章

随机推荐