说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过form表单,点击submit刷新式上传。我为大家介绍两种异步非刷新式上传图片+图片预览:第一种,通过现成的uploadfy插件进行上传,网上好多实例。不过我重点为大家介绍的是第二种,通过Ajax上传图片。因为使用uploadfy插件需要设备支持swf格式的Flash,所以对大多数手机来说,第一种方式就没办法使用了。首先,我先跟大家说一下上传原理:通过js控制file文本域,当选择照片之后,通过Ajax异步提交form表单,然后将图
片的位置作为返回值,使用js把img的src属性设置为返回值。
1、首先,在网上下载jQuery.form.js包和jquery-2.0.3.min.js包,注意:引用的时候要把jquery-2.0.3.min.js放在前面,因为jQuery.form.js里面涉及到jQuery方法,如果引用顺序不对,js会报错。
构建HTML代码:
2、写Ajax方法:
$(function(){
varfiles=$(".files");
$("#fileupload").wrap("");
$("#fileupload").change(function(){
$("#myupload").ajaxSubmit({
dataType:'json',
success:function(data){
$("#pic").attr("src","files/"+data);
},
error:function(xhr){
alert("上传失败");
}
});
});
});
3、为了验证一下form表单是否action到action.php里,我们在action.php使用var_dump($_FILES);打印一下。通过firebug看看结果
说明form表单已经提交过来,然后在action使用move_uploaded_file函数将文件移到你想要移动的位置。
下面是详细的源码:
Inde.html
$(function(){
varfiles=$(".files");
$("#fileupload").wrap("");
$("#fileupload").change(function(){
$("#myupload").ajaxSubmit({
dataType:'json',
success:function(data){
$("#pic").attr("src","files/"+data);
},
error:function(xhr){
alert("上传失败");
}
});
});
});
Action.php
如果觉得《jq php异步上传图片 PHP+Ajax实现图片异步上传预览》对你有帮助,请点赞、收藏,并留下你的观点哦!