Javascript Var dump formdata as POST返回NULL

Javascript Var dump formdata as POST返回NULL,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我看到了一些使用formdata通过ajax上传图像的简单代码,但在php端,它在$\u POST中显示为NULL,我尝试回显$\u POST['file']['name'],但它没有回显任何内容 我的php文件有: var_dump($_POST); 如何在php中使用ajax发送到php的formData $document.on'change','image',函数{ var fd=新的FormData; fd.append'file',$this.propfiles[0]; cons

我看到了一些使用formdata通过ajax上传图像的简单代码,但在php端,它在$\u POST中显示为NULL,我尝试回显$\u POST['file']['name'],但它没有回显任何内容

我的php文件有:

var_dump($_POST);
如何在php中使用ajax发送到php的formData

$document.on'change','image',函数{ var fd=新的FormData; fd.append'file',$this.propfiles[0]; console.logfd; $.ajax{ 键入:“post”, processData:false, contentType:false, url:“./images.php”, 数据:fd, 成功:功能{ console.loga; } }; }; 图像{显示:无}
您必须使用超级全局$\u文件而不是$\u POST try:

输出如下内容:

 array (size=1)  'file' =>
      array (size=5)
            'name' => string '49e9c80947764261bbd9d46a8063c3d1.jpg' (length=36)      
            'type' => string 'image/jpeg' (length=10)
            'tmp_name' => string 'C:\xampp\tmp\php64A9.tmp' (length=24)      
            'error' => int 0
            'size' => int 3090
这对我有用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<form id="imageUpload">
    <label for="image"><i class="fa fa-camera" aria-hidden="true"></i></label><input  type="file" name="file" id="image">
</form>
<script type="text/javascript">
    $(document).on('change','#image',function(){

    var fd = new FormData($("#imageUpload")[0]);
        fd.append('file',$(this)[0].files[0]);

       console.log(fd);
    $.ajax({
        type: 'post',
        processData: false,
        contentType: false,
        url: 'testimage.php',//change to yours
        data: fd,
        success: function(a){
            console.log(a);
        }
    });
    });

</script>
然后我的php

<?php

    var_dump($_FILES);
结果:


你的表格在哪里?我在某个地方读到我不需要表格。你的意思是$\u文件不是$\u帖子$\u文件['file']['tmp\u name']$\u文件['file']['name']也试过了,得到了同样的结果:/@StupidKid我用了你的代码,检查了一下,它成功了。如何检查$\u POST或$\u文件是否为空?请使用开发工具的选项卡来确保。这可能是我的错误,但我使用了var\u dump,如果ajax成功,它会在console.log中返回NULL,或者当我尝试在ajax成功中回显某个内容并将其作为文本返回时,它会返回空。哦,我没有想到这一点,嗯,我接受了你的答案,虽然我试过了,但没有成功,现在成功了:D
<?php

    var_dump($_FILES);