• 转:异步提交表单插件jquery.form.min.js的使用实例,后台net同样可以接收到Excel文件进行处理


    因为项目中需要达到效果:前台点击按钮弹出文件选择框,选择文件确定之后,上传到后台对文件进行处理并给出响应信息。

    尝试过使用$.post,$.ajsx,将表单序列化之后传到后台,但是后台并不能收到文件,查找资料后得知:

    .serialize()序列化表单,提交按钮的值不会被序列化。另外,如果想要一个表单元素的值被序列化成字符串,这个元素必须含有 name 属性。此外,复选框(checkbox)和单选按钮(radio)(input类型为 "radio" 或 "checkbox")的值只有在被选中时才会被序列化。另外,文件选择元素的数据也不会被序列化。

    后面使用了Jquery.form插件来完成了该功能。

    前台:

    1.导入jquery.min.js和jquery.form.min.js

    <script type="text/javascript" src="${ctxStatic}/js/jquery-1.7.2.js"></script>
    <script type="text/javascript" src="${ctxStatic}/js/jquery.form.min.js"></script>

    2.设置按钮和隐藏表单

    复制代码
     <a class="btn btn-small btn-success" onclick="javascript:inportAdvertiserList();">导入</a>
    
    <div style="display: none">
          <form class="form-inline" id="uploadexcel" name="uploadexcel" action="" method="post" style="padding-bottom: 10px;" enctype="multipart/form-data">
            <input type="file" name="excelFile" id="excelFile" onchange="javascript:submitexcelFile()">
          </form>
        </div>
    复制代码

    这里按钮是超链接改变样式来实现按钮,普通按钮也可以。div默认位隐藏

    3.对应的js函数

    复制代码
    <script type="text/javascript">
    
     function inportAdvertiserList()
      {
        $("#excelFile").click();
      }
    
      function submitexcelFile()
      {
    
        $("#uploadexcel").ajaxSubmit({
          url: "${ctx}/advertiser/inportAdvertiserList",
          type: "post",
          enctype: 'multipart/form-data',
          // iframe: true,
          dataType:'json',
          success: function (data)
          {
            //var msg = eval(data);
            alert(data.errMsg);
            window.location.reload();
          },
          error: function (data)
          {
            //var msg = eval(data);
            alert("出错");//msg.errCode
          }
        })
      }
    
    </script>
    复制代码

    这里注意Id选择器和input的name(后台取值会用到),url位后台地址

    后台:

     

    后台是ssm构建的,

    @RequestMapping(value = {"inportAdvertiserList"})用来设置请求url,
     @ResponseBody用来标记返回指,可以将返回值转换成json数据返回(需要导入相关包)。
    后台可以MultipartFile excelFile来取到前台input传过来的file

    这次项目中是需要取到前台传过来的excel并解析其中的数据,将其转换为对象存入数据库,部分数据公司相关,后面就不写了。

    后台使用net同样可以接收到上传的Excel文件。
  • 相关阅读:
    模板层
    视图层
    网络编程
    面向对象的三大特性之继承
    面向对象的三大特性之封装
    面向对象的属性和方法
    面向对象编程
    垃圾回收机制
    re模块、正则表达式
    模块之hashlib、hmac、configparser、subprocess、xlrd、xlwt、xml
  • 原文地址:https://www.cnblogs.com/sunny3158/p/11321827.html
Copyright © 2020-2023  润新知