使用ajax发送输入类型文件值

cas*_*per 12 php ajax jquery

我已经制作了一个将发送输入类型文件的表单,在我的服务器端我希望获得$_FILES值,所以我使用print_r($_FILES),但在我的ajax响应我没有得到任何价值,这里我的代码..

  <form id="my_form">
     <input type="file" id="image_file" name="image_file"/>
  </form>

  $('#my_form').submit(function() {
     var data   = $('#my_form').serialize();
     $.ajax({
        url: 'ajax.php',
        type: 'POST',
        data: data,
        enctype: 'multipart/form-data',
        success: function(response) {
            alert(response);
        }, 
    });
  return false;
});
Run Code Online (Sandbox Code Playgroud)

在这里我的PHP代码

<?php  
  $name = $_FILES['image_file']['name']; // get the name of the file
  $type = $_FILES['image_file']['type']; // get the type of the file
  $size = $_FILES['image_file']['size'];
  echo $name;
  //or
  print_r($_FILES);
?>
Run Code Online (Sandbox Code Playgroud)

请帮我 ...

谢谢..

小智 1

Ajax文件上传

也许这个插件可以帮助你解决这个问题。

这个插件的工作方式就像人们在ajax理论提出之前所做的那样,使用iframe标签处理所有请求而不刷新页面。

如果没有 HTML5,我认为我们无法使用 XMLHttpRequest 来上传文件。