关于php:用ajax发送输入类型文件值

send input type file value with ajax

本问题已经有最佳答案,请猛点这里访问。

我已经创建了一个将发送一个输入类型文件的表单,在我的服务器端,我想得到$_FILES值,所以我使用print_r($_FILES),但是在我的Ajax响应中,我没有得到任何值,这里是我的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  <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;
});

这里是我的PHP代码

1
2
3
4
5
6
7
8
<?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);
?>

请帮帮我…

谢谢。。


阿贾克斯

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

这个插件的工作方式和人们在Ajax理论提出之前所做的一样,它使用iframe标记处理所有请求,而不刷新页面。

没有HTML5,我认为我们不能使用XMLHttpRequest来上传文件。