当前位置:主页 > java教程 > SpringBoot+layui实现文件上传功能

SpringBoot+layui实现文件上传功能的实例讲解

发布:2019-10-29 21:38:14 166


给大家整理了相关的编程文章,网友卢诗槐根据主题投稿了本篇教程内容,涉及到SpringBoot、layui、文件上传、SpringBoot+layui实现文件上传功能相关内容,已被487网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

SpringBoot+layui实现文件上传功能

什么是spring boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

页面代码(只需要引入基础layui的css与js)

<fieldset class="layui-elem-field layui-field-title" >
 <legend>多文件列表上传</legend>
</fieldset> 
<div class="layui-upload">
 <button type="button" class="layui-btn layui-btn-normal" id="testList">选择多文件</button> 
 <div class="layui-upload-list">
  <table class="layui-table">
   <thead>
    <tr><th>文件名</th>
    <th>大小</th>
    <th>状态</th>
    <th>操作</th>
   </tr></thead>
   <tbody id="demoList"></tbody>
  </table>
 </div>
 <button type="button" class="layui-btn" id="testListAction">开始上传</button>
</div>

JS

layui.use('upload', function(){
 var $ = layui.jquery
 ,upload = layui.upload;
 //多文件列表示例
 var demoListView = $('#demoList')
 ,uploadListIns = upload.render({
  elem: '#testList'
  ,url: 'upload/uploadFile'
  ,accept: 'file'
  ,multiple: true
  ,auto: false
  ,size: 5120
  ,bindAction: '#testListAction'
  ,choose: function(obj){  
   var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
   //读取本地文件
   obj.preview(function(index, file, result){
    var tr = $(['<tr id="upload-'+ index +'">'
     ,'<td>'+ file.name +'</td>'
     ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
     ,'<td>等待上传</td>'
     ,'<td>'
      ,'<button class="layui-btn layui-btn-mini demo-reload layui-hide">重传</button>'
      ,'<button class="layui-btn layui-btn-mini layui-btn-danger demo-delete">删除</button>'
     ,'</td>'
    ,'</tr>'].join(''));
    //单个重传
    tr.find('.demo-reload').on('click', function(){
     obj.upload(index, file);
    });
    //删除
    tr.find('.demo-delete').on('click', function(){
     delete files[index]; //删除对应的文件
     tr.remove();
     uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
    });
    demoListView.append(tr);
   });
  }
  ,done: function(res, index, upload){
   if(res.code == 0){ //上传成功
    var tr = demoListView.find('tr#upload-'+ index)
    ,tds = tr.children();
    tds.eq(2).html('<span >上传成功</span>');
    tds.eq(3).html(''); //清空操作
    return delete this.files[index]; //删除文件队列已经上传成功的文件
   }
   this.error(index, upload);
  }
  ,error: function(index, upload){
   var tr = demoListView.find('tr#upload-'+ index)
   ,tds = tr.children();
   tds.eq(2).html('<span >上传失败</span>');
   tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
  }
 });
});

后台接收

 public final static String UPLOAD_FILE_PATH = "D:\\uploadFile\\";
  @RequestMapping(value = "uploadFile")
  public String uploadImage(@RequestParam("file") MultipartFile file) {
    if (!file.isEmpty()) {
      Map<String, String> resObj = new HashMap<>(MAP_SIZE);
      try {
        BufferedOutputStream out = new BufferedOutputStream(
            new FileOutputStream(new File(UPLOAD_FILE_PATH, file.getOriginalFilename())));
        out.write(file.getBytes());
        out.flush();
        out.close();
      } catch (IOException e) {
        resObj.put("msg", "error");
        resObj.put("code", "1");
        return JSONObject.toJSONString(resObj);
      }
      resObj.put("msg", "ok");
      resObj.put("code", "0");
      return JSONObject.toJSONString(resObj);
    } else {
      return null;
    }
  }

总结

以上所述是小编给大家介绍的SpringBoot+layui实现文件上传功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!


参考资料

相关文章

  • layui弹出层按钮提交iframe表单实例效果

    发布:2020-01-27

    今天小编就为大家分享一篇layui弹出层按钮提交iframe表单的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • SpringBoot2零基础到精通之自动配置底层分析及小技巧

    SpringBoot2零基础到精通之自动配置底层分析及小技巧

    发布:2022-10-21

    给网友们整理关于SpringBoot的教程,SpringBoot是一种整合Spring技术栈的方式(或者说是框架),同时也是简化Spring的一种快速开发的脚手架,本篇让我们一起学习自动配置的底层分析与一些开发中的小技巧


  • 解析layui中layer前端组件实现图片显示功能

    发布:2020-01-28

    这篇文章主要介绍了layui中layer前端组件实现图片显示功能的方法,结合实例形式分析了layui中layer组件调用图片显示功能的操作方法与相关注意事项,并提供了layer与layui源码下载,需要的朋友可以参


  • SpringBoot和SpringBatch用法详解

    发布:2019-09-15

    Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。这篇文章主要介绍了详解SpringBoot和SpringBatch 使用,需要的朋友可以参考下


  • Springboot整合策略模式详解

    发布:2023-04-26

    这篇文章主要介绍了Springboot整合策略模式详解的相关资料,需要的朋友可以参考下


  • SpringBoot可以同时处理多少请求流程分析

    发布:2023-03-22

    SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的,所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求,这篇文章主要介绍了SpringBoot可以同时处理多少请求,需要的朋友可以参考下


  • SpringBoot整合Mybatis-Plus分页失效的解决

    发布:2023-03-04

    本文主要介绍了SpringBoot整合Mybatis-Plus分页失效的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 使用docker部署springboot项目

    发布:2020-02-14

    这篇文章主要介绍了详解springboot项目docker部署实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


网友讨论