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的将DropDownlist的选中值赋给label的实现代码
May 06 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
Dec 26 Javascript
JavaScript中用于生成随机数的Math.random()方法
Jun 15 Javascript
javascript发送短信验证码实现代码
Nov 12 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
js中DOM三级列表(代码分享)
Mar 20 Javascript
实战node静态文件服务器的示例代码
Mar 08 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
微信小程序自定义支持图片的弹窗
Dec 21 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 Javascript
基于angular实现树形二级表格
Oct 16 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
php的ddos攻击解决方法
2015/01/08 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
php命令行模式代码实例详解
2021/02/26 PHP
javascript 跳转代码集合
2009/12/03 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
详解python3中zipfile模块用法
2018/06/18 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
大学总结自我鉴定
2014/01/18 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis