zoukankan      html  css  js  c++  java
  • AJAX 提交form表单以及文件上传

    项目中经常遇到页面提交数据,然而又不想当前页面刷新,这个就需要ajax了。

    下面来说说如何简洁的提交一个form表单

    1、HTML

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <div >
        <div class="pull-left">
           <form action="${ctx }/ajax/fileUpload" method="post" enctype="multipart/form-data" id="form2">
                <input class="btn btn-success btn-sm" type="file" name="uploadFile" id="uploadFile"/>
                <input  type="hidden" name="flag" value="keyword" id="hidden_flag"/>
                <!-- <button id="submitFile_btn" class="btn btn-success btn-sm" type="submit">添加</button> -->
            </form>
        </div>
        <div class="col-md-4">
            <button id="submitFile_btn" class="btn btn-success btn-sm" type="button" onclick="submitFile()">添加</button>
        </div>
    </div>
    
    
    </body>
    </html>

    2、js代码

    <script type="text/javascript">
    function submitFile(){
        var form =new FormData(document.getElementById("form2"));
        openEnable();
        //$("#form2").submit();
        $.ajax({
               url: '${ctx }/ajax/fileUpload',
               data: form,
               type: 'post',
               dataType: 'json',
               async: true,
               processData:false,
               contentType:false,
               beforeSend: function () {
                       // 禁用按钮防止重复提交
                       $("#submitFile_btn").text("更新中..");
                       $("#submitFile_btn").attr({ disabled: "disabled" });
                   },
               success: function (data) {
                   if (data.success == true) {
                       window.location.href = '${ctx }/admin/userList';
                   } 
                   if(data.success == false) {
                       openfailed();
                       window.location.href = '${ctx }/admin/userList';
                   }
               },
                complete: function () {
                    $("#submitFile_btn").text("批量添加");
                    $("#submitFile_btn").removeAttr("disabled");
                }
           });
    }
    </script>

    使用 

    var form =new FormData(document.getElementById("form2"));
    减少了js代码中的
    var a = $("#a").val();
    var b = $("#b").val();
    var c = $("#c").val();
    var d = $("#d").val();

    而且避免了有时会获取不到file文件(个人遇到过,不是绝对)

    3、java 后台接受文件

    使用:

    public @ResponseBody String fileUpload(HttpServletRequest request,HttpServletResponse response,String flag) {

    boolean multipart = new CommonsMultipartResolver(request.getSession().getServletContext()).isMultipart(request);
    if (multipart) {

      MultipartHttpServletRequest multiPartRequest = (MultipartHttpServletRequest) request;
      MultipartFile file = multiPartRequest.getFile("uploadFile");

      InputStream inputStream = file.getInputStream();

      }

    }

    注意:使用MultipartHttpServletRequest  接受文件需要先用红色代码进行判断是否存在,存在之后再强转 HttpServletRequest 为 MultipartHttpServletRequest

  • 相关阅读:
    终于看到费德勒在法网如愿!
    o(∩_∩)o...,今天去博客园了!
    条款4:使用Conditional特性代替#if条件编译
    MSDTC无法启动的解决方法
    2009 很有意义的一天
    从现在开始,争取记录每天所学到的、所感受到的、所遇见到的点点滴滴!
    了解MOSS2007 内容类型ID(Content Type IDs)命名规则
    CreateSpecificCulture('zhcn')和new CultureInfo('zhcn')的区别
    金华大显数码科技有限公司诚聘
    使用SQL Server中按位于来表示组合状态
  • 原文地址:https://www.cnblogs.com/xingtangxiaoga/p/9760628.html
Copyright © 2011-2022 走看看