ajax实现文章上传

Posted 方克工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax实现文章上传相关的知识,希望对你有一定的参考价值。

对于以模态对话框的方式,实现新增|修改等功能时,在使用ajax提交表单数据的时候,必须考虑表单是否包含文件域。



情况1:不包含文件域


  按照$("#form的id").serialize()或者.serializeArray()或者表单数据


  然后再使用$.post();


        var formdata = $("#form1").serializeArray();//无法上传文件的
        alert(formdata);
        var url ="<%= request.getContextPath()%>/upload/demo1";
        $.ajax({
            url:url,
            data:formdata, //name=zhangsan&age=50   {}
                contentType: false,//默认: "application/x-www-form-urlencoded"
                processData: false,//设置 processData 选项为 false,防止自动转换数据格式
            type:"post",
            dataType:"json",
            success:function(data){
                alert(data);
            },
            error:function(er){
                alert(er.responseText);
            }
        });




情况2:包含文件域


  做法1:使用html5提供的新特性:FormData


            var formdata = new FormData(document.getElementById("form1"));//可以上传文件


        var url ="<%= request.getContextPath()%>/upload/demo1";
        $.ajax({
            url:url,
            data:formdata, //name=zhangsan&age=50   {}
                contentType: false,//默认: "application/x-www-form-urlencoded"
                processData: false,//设置 processData 选项为 false,防止自动转换数据格式
            type:"post",
            dataType:"json",
            success:function(data){
                alert(data);
            },
            error:function(er){
                alert(er.responseText);
            }
        });




  做法2:使用jquery.form.js插件


        <script type="text/javascript" ></script>
    <script type="text/javascript" ></script>


    var url ="<%= request.getContextPath()%>/upload/demo2";
        
    $("#form1").ajaxSubmit({  
            type:'post',  
            url:url,  
            clearForm:true,//清空所有表单元素的值
            resetForm:true,//重置所有表单元素的值
            success:function(data){  
                alert(data);  
            },  
            error:function(XmlHttpRequest,textStatus,errorThrown){  
                alert("上传失败了");
            }  
        }); 


以上是关于ajax实现文章上传的主要内容,如果未能解决你的问题,请参考以下文章

jQuery无刷新上传之uploadify简单试用

XMLHttpRequest + JSON + 文件上传 + axios

PHP+Ajax实现的博客文章添加类别功能

一个完整的springmvc + ajaxfileupload实现图片上传的案例

如何使用springmvc实现文件上传

图片上传并回显Ajax异步篇