layui 图片上传+表单提交+ Spring MVC的实例


Posted in Javascript onSeptember 21, 2019

Layui 的上传是最常用的, 不可或缺, 记录一下代码, 以后复制都能用!!

1.前端HTML:

<div class="layui-form-item">
 <label class="layui-form-label">修改头像</label>
 <div class="layui-input-inline uploadHeadImage">
  <div class="layui-upload-drag" id="headImg">
   <i class="layui-icon">?</i>
   <p>点击上传图片,或将图片拖拽到此处</p>
  </div>
 </div>
 <div class="layui-input-inline">
  <div class="layui-upload-list">
   <img class="layui-upload-img headImage" src="http://t.cn/RCzsdCq" id="demo1">
   <p id="demoText"></p>
  </div>
 </div>
</div>

2.前端js:

<script type="text/javascript">
 layui.use(["jquery", "upload", "form", "layer", "element"], function () {
  var $ = layui.$,
   element = layui.element,
   layer = layui.layer,
   upload = layui.upload,
   form = layui.form;
  //拖拽上传
  var uploadInst = upload.render({
   elem: '#headImg'
   , url: '/upload/headImg'
   , size: 500
   , before: function (obj) {
    //预读本地文件示例,不支持ie8
    obj.preview(function (index, file, result) {
     $('#demo1').attr('src', result); //图片链接(base64)
    });
   }
   , done: function (res) {
    //如果上传失败
    if (res.code > 0) {
     return layer.msg('上传失败');
    }
    //上传成功
    //打印后台传回的地址: 把地址放入一个隐藏的input中, 和表单一起提交到后台, 此处略..
    /* console.log(res.data.src);*/
    window.parent.uploadHeadImage(res.data.src);
    var demoText = $('#demoText');
    demoText.html('<span style="color: #8f8f8f;">上传成功!!!</span>');
   }
   , 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();
    });
   }
  });
  element.init();
 });
</script>

3.页面展示:

layui 图片上传+表单提交+ Spring MVC的实例

layui 图片上传+表单提交+ Spring MVC的实例

layui 图片上传+表单提交+ Spring MVC的实例

4.后台SpringMVC 接受:

/**
 * 个人信息上传
 * @return {Result}
 */
@RequestMapping(value = "/upload/headImg", method = {RequestMethod.POST})
@ResponseBody
public Object headImg(@RequestParam(value="file",required=false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
 if (SecurityUtils.getSubject().isAuthenticated() == false) {
  return "redirect:/backEnd/login";
 }
 String prefix="";
 String dateStr="";
 //保存上传
  OutputStream out = null;
 InputStream fileInput=null;
 try{
  if(file!=null){
   String originalName = file.getOriginalFilename();
   prefix=originalName.substring(originalName.lastIndexOf(".")+1);
    dateStr = format.format(new Date());
   String filepath = request.getServletContext().getRealPath("/static") + uploadDir + dateStr + "." + prefix;
   filepath = filepath.replace("\\", "/");
   File files=new File(filepath);
   //打印查看上传路径
   System.out.println(filepath);
   if(!files.getParentFile().exists()){
    files.getParentFile().mkdirs();
   }
   file.transferTo(files);
  }
 }catch (Exception e){
 }finally{
  try {
   if(out!=null){
    out.close();
   }
   if(fileInput!=null){
    fileInput.close();
   }
  } catch (IOException e) {
  }
 }
 Map<String,Object> map2=new HashMap<>();
 Map<String,Object> map=new HashMap<>();
 map.put("code",0);
 map.put("msg","");
 map.put("data",map2);
 map2.put("src","../../../static"+uploadDir + dateStr + "." + prefix);
 return map;
}

5.关于表单请求, 正常使用layui的表单上传就可以了.. 这里就不写了, 太简单了, 我其它博客有写,请去翻阅,嗯 ,就这样.......

以上这篇layui 图片上传+表单提交+ Spring MVC的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现 在光标处插入指定内容
May 25 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 Javascript
javascript实现左右控制无缝滚动
Dec 31 Javascript
基于jquery实现ajax无刷新评论
Aug 19 Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
layui layer select 选择被遮挡的解决方法
Sep 21 #Javascript
layui table 表格模板按钮的实例代码
Sep 21 #Javascript
js实现图片3D轮播效果
Sep 21 #Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 #Javascript
原生js实现3D轮播图
Mar 21 #Javascript
解决layui弹出层layer的area过大被遮挡的问题
Sep 21 #Javascript
关于layui flow loading占位图的实现方法
Sep 21 #Javascript
You might like
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
python模块restful使用方法实例
2013/12/10 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
10的分与合教学反思
2014/04/30 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
稽核岗位职责范本
2015/04/13 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
vue修饰符.capture和.self的区别
2022/04/22 Vue.js