Ajax 使用formdata 实现 无刷新表单上传
2017-01-16 23:22
543 查看
FormData对象的作用就类似于这里的
serialize()方法,不过
FormData是浏览器原生的,且支持二进制文件
1.这里实现一个无刷新上传图片,成功后页面显示
点击button 触发隐藏的 input上传
view层
<img id='headimage' src="images/default_tx.jpeg" width="80" height="80" style="border-radius: 5px;" /> <div style="width: 100%; height: auto; text-align: center; margin-top: 10px;"> <span style="font-family:Arial;"> </span> <input type="button" class="btn btn-default btn-sm" value="上传头像" onclick="getElementById('inputfile').click()" /> <form id="submit_form11"> <input type="file" name="image" style="display:none;" id="inputfile"/></div> </form>
JS
formData里面存储的数据形式,一对key/value组成一条数据,key是唯一的,一个key可能对应多个value。如果是使用表单初始化,每一个表单字段对应一条数据,它们的HTML name属性即为key值,它们value属性对应value值。
//1.可以通过form表单获取 var form = $("#submit_form11")[0]; var form = document.getElementById("submit_form11"); //两种写法相同,获取表单对象节点 var data = new FormData(form); //表单来初始化 //2.可以直接获取对象存入formdata var data = new FormData(); //$.each($('#inputfile')[0].files, function(i, file) { //data.append('image', file); //}); data.append("image" , $("#inputfile")[0].files[0]); //这种方法就不用使用form标签了 // var image = formData.get("image"); //formdata提供get方法可以获取存入的值 data.append('cid',<?php echo $info['cid']; ?>) // 当然也可以在此基础上,添加其他数据 //上传 $.ajax({ url:"index.php?r=cus-main/upimage", type:'POST', data:data, cache: false, contentType: false, // 不处理发送的数据,因为data值是Formdata对象,必须false才会自动加上正确的Content-Type processData: false, // 必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理 success:function(data){ if(data['code']==101) { $('#headimage').attr('src',data['url']); $('#tips').css('display','none'); }else { alert('图片上传失败'); } }, error:function(){ alert('图片上传失败');) } });
后台处理
获取文件图片 使用 $_FILES['image'] 获取一般键值 使用$_POST['cid']
相关文章推荐
- Ajax 使用formdata 实现 无刷新表单上传
- Ajax使用FormData对象实现无刷新上传文件
- 使用ajax 和 FormData 实现无刷新提交 带文本和文件的表单
- C# Asp.net使用FormData对象实现ajax提交表单及上传图片
- Ajax+FormData实现无刷新附件上传
- 实现无刷新上传文件,使用FormData进行Ajax请求
- 使用PHP和HTML5 FormData实现无刷新文件上传教程
- ajax上传文件,提交表单,使用FormData和XMLHttpRequest提交表单
- 利用Ajax FormData实现无刷新带进度条文件上传
- 关于jQuery使用serializeArray()序列化表单数据,使用FormData()实现AJAX请求的问题
- 基于jQuery的ajax系列之用FormData实现页面无刷新上传
- ajax上传文件,提交表单,使用FormData和XMLHttpRequest提交表单
- 使用PHP和HTML5 FormData实现无刷新文件上传教程
- 使用隐藏的iframe 隐藏form提交,仿AJax无刷新提交,可以实现无刷新上传文件
- (转)使用隐藏的iframe 隐藏form提交,仿AJax无刷新提交,可以实现无刷新上传文件
- 基于jQuery的ajax系列之用FormData实现页面无刷新上传
- ajax+FormData+javascript 实现无刷新表单注册
- 通过Ajax使用FormData对象无刷新上传文件
- 利用ajax与springmvc传送formdata实现图片的无刷新上传
- 使用PHP和HTML5 FormData实现无刷新文件上传教程