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 相关文章推荐
js下利用控制器载入对应脚本
Jul 17 Javascript
JS面向对象编程浅析
Aug 28 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
jQuery获取iframe的document对象的方法
Oct 10 Javascript
JavaScript不刷新实现浏览器的前进后退功能
Nov 05 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
AngularJS ng-controller 指令简单实例
Aug 01 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
js获取页面description的方法
2015/05/21 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python对象体系深入分析
2014/10/28 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
wxPython中listbox用法实例详解
2015/06/01 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python爬虫 正则表达式解析
2019/09/28 Python
如何基于python实现脚本加密
2019/12/28 Python
Python通过文本和图片生成词云图
2020/05/21 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
python推导式的使用方法实例
2021/02/28 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
质检部经理岗位职责
2014/02/19 职场文书
大学计划书范文800字
2014/08/14 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
执行力心得体会范文
2016/01/11 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android