jQuery无刷新上传图片简单实现

网络上搜索到的结果大多是使用隐藏iframe方式,而这里要说的是直接ajax post提交上传的方式。ajax post提交需要用到非常牛的一个jQuery插件jQuery Form

首先在页面中引入jQuery及jQuery Form插件,

1
2
<script type="text/javascript" src="http://libs.useso.com/js/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="http://libs.useso.com/js/jquery.form/3.50/jquery.form.min.js"></script>

在页面上放置一个file上传控件

1
2
3
<form id="myForm" action="upload.php" method="post">
    <input id="fileupload" type="file" name="mypic">
</form>

然后写入js脚本,监视上传按钮,有变化时,调用jQuery Form的ajaxSumit方法上传,并且取得json的返回结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$("#fileupload").change(function(){
    $("#myupload").ajaxSubmit({
        dataType:  'json',
        beforeSend: function() {
            //上传前的动作
        },
        uploadProgress: function(event, position, total, percentComplete) {
            //返回进度,percentComplete为当前的进度值
        },
        success: function(data) {
            //上传成功后执行的动作
            alert(data.myfilename+'上传成功');
        },
        error:function(xhr){
            //上传失败时执行的动作
        }
    });
});

后端处理代码就很简单了,如同处理普通的input file上传一样,获取上传的临时文件地址,并进行处理后,返回json格式的结果,通知前端即可。

坚持原创技术分享,您的支持将鼓励我继续创作!