微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 更改文件(图像)输入ajax无法发布文件

参见英文答案 > Uploading both data and files in one form using Ajax?                                    7个
Ajax无法发送文件(jpg-png).我无法解决问题.

表格代码

<form action="upload.PHP" method="post" enctype="multipart/form-data">
 <label for="img"> 
  <button id="post-img">update</button>
  <!-- input hidden !! -->
  <input type="file" name="img" id="a-img" style="visibility:hidden">
</label>

AJAX:

$('#a-img').change(function(){
  var photo = $('form').serialize();
  $.ajax({
    url:'upload.PHP',
    data: photo,
    success:function(data){
        alert(data);
    }
   });
});

PHP代码

if($_FILES){
 echo "file ok";
}else{
 echo "no file"; 
}

回调:“没有文件”;

解决方法:

将id frm_send_img添加到表单中.

<form action="upload.PHP" id="frm_send_img" method="post" enctype="multipart/form-data">
 <label for="img"> 
  <button id="post-img">update</button>
  <!-- input hidden !! -->
  <input type="file" name="img" id="a-img" style="visibility:hidden">
</label>

更改脚本如下.

 $('#a-img').change(function(){
            var photo = new FormData($("#frm_send_img")[0]);

            $.ajax({
                url: "upload.PHP",
                type: "POST",
                data: photo,
                async: false,
                success: function (msg) {
                    alert(msg)
                },
                cache: false,
                contentType: false,
                processData: false
            });

            e.preventDefault();
        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐