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 相关文章推荐
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
用JQuery在网页中实现分隔条功能的代码
Aug 09 Javascript
js解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
Apr 26 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 Javascript
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
pandas 时间格式转换的实现
2019/07/06 Python
简单了解python的内存管理机制
2019/07/08 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
优秀员工年终发言演讲稿
2014/01/01 职场文书
护理专科学生自荐书
2014/07/05 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
优秀大学生自荐信
2015/03/26 职场文书
电信营业员岗位职责
2015/04/14 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书