jjzjj

php - 带有 FormData 的 XHR 请求正在发布一个空数组,

coder 2024-04-21 原文

我正在开发自己的 this 版本.

一切正常,除了 POSTed 值是空的。 PHP 端的 var_dump 显示一个空数组。怎么了?

function readfiles(files)
{
    console.log('Reading Files...');
    console.log(files);
    console.log("There are " + files.length + " elements to this array.");

    var formData = new FormData();
    formData.append('file', files[0]);
    console.log(formData);

    console.log("Posting XHR request...");
    // now post a new XHR request
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/devnull.php',false);

    console.log("sending data...");
    console.log(formData);
    xhr.send(formData);
}

$(document).ready(function(e) {
    $("#holder").on('dragenter',function(e) {
        e.preventDefault();         
        $(this).addClass('hover');
    });
    $("#holder").on('dragleave',function(e) {
        e.preventDefault();         
        $(this).removeClass('hover');
    });
    $("#holder").on('dragover',function(e) {
        e.preventDefault();         
        if(!($("#holder").hasClass('hover')))
            $("#holder").addClass('hover');
    });
    $("#holder").on('drop',function(e) {
        e.preventDefault();
        console.log(e.originalEvent.dataTransfer.files);
        $(this).removeClass('hover');
        readfiles(e.originalEvent.dataTransfer.files)           
        return false;
    });
});

Firebug 告诉我数组中有一个元素:

FileList { 0=File, length=1, item=item(), more...}

但是在我们将它附加到 FormData 对象之后,我得到了这个:

FormData { append=append()}

PHP 端的最终 var_dump 是这样说的:

<pre>array(0) {
}
</pre>

最佳答案

使用这段代码显示文件数据

<?php var_dump($_FILES);?>

关于php - 带有 FormData 的 XHR 请求正在发布一个空数组,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848936/

有关php - 带有 FormData 的 XHR 请求正在发布一个空数组,的更多相关文章

随机推荐