layui实现form表单同时提交数据和文件的代码


Posted in Javascript onOctober 25, 2019

1.jsp页面

·html代码

<%--用户注册的弹出框--%>
<div id="userDiv" style="display: none;">
 <form class="layui-form" id="userForm" lay-filter="deptForm" enctype="mutipart/form-data">
  <input type="hidden" name="id">
  <div class="layui-form-item">
   <div class="layui-inline">
    <label class="layui-form-label" >用户名</label>
    <div class="layui-input-inline">
     <input type="text" name="name" placeholder="6~18位,请使用数字或字母" lay-verify="checkName|username|required" class="layui-input">
    </div>
   </div>
   <div class="layui-inline">
    <label class="layui-form-label">密码</label>
    <div class="layui-input-inline">
     <input type="password" id="password" name="password" lay-verify="required" class="layui-input">
    </div>
   </div>
   <div class="layui-inline">
    <label class="layui-form-label">确认密码</label>
    <div class="layui-input-inline">
     <input type="password" lay-verify="required|checkPwd" class="layui-input">
    </div>
   </div>
   <%--图片上传功能--%>
   <div>
    <button type="button" name="url" class="layui-btn" id="test1">上传头像</button>
     <img class="layui-upload-img" id="photo" width="100" height="100">
     <p id="demoText"></p>
   </div>
   <hr/>
   <div class="layui-form-item" id="btn">
    <div class="layui-input-block">
     <button id="get" lay-filter="reg" class="layui-btn btn-submit" type="button" lay-submit="">立即注册</button>
     <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
   </div>
  </div>
 </form>
</div>

·js代码

//上传头像的方法
  var uploadInst = upload.render({
   elem: '#test1'  /*根据绑定id,打开本地图片*/
   ,url: '/reg' /*上传后台接受接口*/
   ,auto: false  /*true为选中图片直接提交,false为不提交根据bindAction属性上的id提交*/
   ,bindAction: '#get'
   ,drag:true
   ,auto: false
   ,choose:function(obj){
    //预读本地文件示例,不支持ie8
    obj.preview(function(index, file, result){
     $('#photo').attr('src', result); //图片链接(base64)
    });
   }
   ,done: function(res){
    //如果上传失败
    if(res.code > 0){
     return layer.msg('上传失败');
    }
    //上传成功
   }
   ,error: function(){
    //演示失败状态,并实现重传
    var demoText = $('#demoText');
    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
    demoText.find('.demo-reload').on('click', function(){
     uploadInst.upload();
    });
   }
  });
 //提交表单的方法
 form.on('submit(reg)', function (data) {
   var fd = new FormData();
   var formData = new FormData($( "#userForm" )[0]);
   $.ajax({
    cache : true,
    type : "post",
    url : "/reg",
    async : false,
    data : formData, // 你的formid
    contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
    processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
    error : function(request) {
     layer.alert('操作失败', {
      icon: 2,
      title:"提示"
     });
    },
    success : function(ret) {
     if (ret.success) {
      layer.alert('注册成功', {
       icon: 2,
       title:"提示"
      });
      layer.closeAll();
      window.location.href="/login" rel="external nofollow" ;
     } else {
      layer.alert(ret.msg, {
       icon: 2,
       title:"提示"
      });
     }
    }
    })
  });

2.后台处理

@ResponseBody
 @RequestMapping ("/reg")
 public JsonResult save(MultipartFile file, User user, HttpServletRequest request){
  try {
   String path = request.getSession().getServletContext().getRealPath("upload");
   String pathPhoto = "/upload";
   if(!file.isEmpty()){
    String name = file.getOriginalFilename();//获取接受到的图片名称
    String newFileName = UUID.randomUUID().toString().substring(0,5)+"."+ FilenameUtils.getExtension(name);
    File fi = new File(path,newFileName);  //将path路径与图片名称联系在一起
    if(!fi.getParentFile().exists()){ //判断是否存在path路径下的文件夹
     fi.getParentFile().mkdirs();  //不存在创建path路径下的文件夹
    }
    file.transferTo(fi);      //上传图片
    user.setImgurl(pathPhoto+"/"+newFileName); //为保存图片路径
   }
   if(!StringUtil.isEmpty(user.getName()) && !StringUtil.isEmpty(user.getPassword())){
    userService.save(user);
   }
  } catch (Exception e) {
   e.printStackTrace();
   return new JsonResult(false,e.getMessage());
  }
  return new JsonResult();
 }

以上这篇layui实现form表单同时提交数据和文件的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript 简单验证代码(用户名,密码,邮箱)
Sep 28 Javascript
浅谈javascript 面向对象编程
Oct 28 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
用jquery修复在iframe下的页面锚点失效问题
Aug 22 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
Vue 表单控件绑定的实现示例
Aug 11 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
Aug 31 Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 Javascript
vue实现弹幕功能
Oct 25 #Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 #Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 #Javascript
layui form表单提交后实现自动刷新
Oct 25 #Javascript
jquery实现购物车基本功能
Oct 25 #jQuery
vue中@change兼容问题详解
Oct 25 #Javascript
vue下的@change事件的实现
Oct 25 #Javascript
You might like
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
python模块之paramiko实例代码
2018/01/31 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
django自带调试服务器的使用详解
2019/08/29 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
预备党员承诺书
2014/03/25 职场文书
物业管理专业求职信
2014/06/11 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL