如何在文件输入的onchange事件之后上传文件

时间:2017-10-30 19:32:54

标签: php ajax

我想在文件输入发生变化后通过AJAX上传图片,但我不知道自己哪里出错了。发送文本比文件更容易。

<input type="file" name="photovideo" id="photovideo">
$(document).on("change","#photovideo",function(){
  $.ajax({
    type:'post',
    url:'alert_users/main/potovideo.php',
    data:new FormData(this),
    contentType:false,
    processData:false,
    cache:false,
    success: function(message){
      alert(message);
    },
    error:function(){
      alert("error");
    }
  });
  //...
});

我只想返回名称以确保处理请求:

 echo $name = $_FILES['photovideo']['name'];

2 个答案:

答案 0 :(得分:0)

我们用它来提交文件

<form id="yourImages" action="action.php" method="post" enctype="multipart/form-data"></form>
<script>
    $("body").on('change', '#file', function() {
        $( "#yourImages" ).ajaxForm({}).submit();
    });
</script>

但是你需要AjaxForm ......

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js"></script>

答案 1 :(得分:0)

问题似乎是您尝试使用输入创建FormData,而您应该使用表单。所以改变这一行:

data:new FormData(this),

对此:

data:new FormData($(this).closest('form')[0]), // Get the parent form