jquery ajax 文件上传不工作 var_dump($_FILES) 给出空数组

jquery ajax file uploading not working var_dump($_FILES) gives empty array

我试图在这个网站上找到我的问题的解决方案,但我无法解决我的问题。 它是 html 部分:

<form action="" method="post" enctype="multipart/form-data" id="edit_profile_form" >
<input type="file" name="new_profile_photo" id="new_profile_photo" value="Choose Photo" >
<button class="button11" name="save_changes" id="button11" >SAVE </button>
</form>

这是ajax代码:

<script type="text/javascript">
    $(document).on('click', '#button11', function(){ 
      event.preventDefault();

          var file_data = $("#new_profile_photo").prop('files')[0];
          var form_data = new FormData();
          form_data.append('file', file_data);

        $.ajax({  
                  url:"ajax/editprofile.php",  
                  method:"POST",  
                  async: false,
                  cache: false,
                  contentType: false,
                  processData: false,
                  data: form_data,

                  success:function(data){   
                      $("#error_messages").html(data);

                  }  
              });  


      });
</script>

当我写 var_dump($_FILES) 时,它给了我空数组。如果有人知道如何解决它,请帮忙。谢谢

试试这个:

JS

    $('#upload').on('click', function() {
            var file_data = $('#pic').prop('files')[0];
            var form_data = new FormData();
            form_data.append('file', file_data);

            $.ajax({
                    url         : 'upload.php',     // point to server-side PHP script 
                    dataType    : 'text',           // what to expect back from the PHP script, if anything
                    cache       : false,
                    contentType : false,
                    processData : false,
                    data        : form_data,                         
                    type        : 'post',
                    success     : function(output){
                        alert(output);              // display response from the PHP script, if any
                    }
             });
             $('#pic').val('');                     /* Clear the file container */
        });

Php

    <?php
        if ( $_FILES['file']['error'] > 0 ){
            echo 'Error: ' . $_FILES['file']['error'] . '<br>';
        }
        else {
            if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']))
            {
                echo "File Uploaded Successfully";
            }
        }

    ?>

它会将文件上传到uploads目录