最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java Springboot實現(xiàn)多文件上傳功能

 更新時間:2021年05月19日 11:21:51   作者:西郊巷外  
這篇文章主要為大家詳細(xì)介紹了java Springboot實現(xiàn)多文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

前端采用layui框架,講解多文件上傳的完整實現(xiàn)功能。

前端html重點代碼如下:

<div class="layui-form-item">
 <label class="layui-form-label">上傳文件</label>
 <div class="layui-input-block">
 <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>狀態(tài)</th>
 <th>操作</th>
 </tr></thead>
 <tbody id="demoList"></tbody>
 </table>
 </div>
 <button type="button" class="layui-btn" id="testListAction">開始上傳</button>
 </div>
  </div>
</div>

相應(yīng)的,js代碼如下所示:

layui.use('upload', function(){
  var $ = layui.jquery,upload = layui.upload;
  //多文件列表示例
  var demoListView = $('#demoList')
    ,uploadListIns = upload.render({
    elem: '#testList'
    ,url: '/upload'
    ,accept: 'file'
    ,data:{} //可放擴展數(shù)據(jù) key-value
    ,multiple: true
    ,auto: false
    ,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]; //刪除對應(yīng)的文件
       tr.remove();
       uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免刪除后出現(xiàn)同名文件不可選
      });
 
      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 style="color: #5FB878;">上傳成功</span>');
     tds.eq(3).html(''); //清空操作
     return delete this.files[index]; //刪除文件隊列已經(jīng)上傳成功的文件
 
    } //code為后臺傳回來的數(shù)據(jù),具體多少自己定,
 
    //后臺只能傳回json格式數(shù)據(jù),不然會走error函數(shù);
 
    ,error: function(index, upload){
 
   }
 })
});

以上即是前端功能的實現(xiàn),后端方面,在Service層Impl下創(chuàng)建文件上傳的函數(shù):

public String uploadNoticeFile(MultipartFile fileList) {
  try{
   String pathname = filepath;
   String timeMillis = Long.toString(System.currentTimeMillis());//時間戳
   String filename = timeMillis + fileList.getOriginalFilename();
   File dir = new File(pathname);
   if (!dir.exists()) {
    dir.mkdirs();
   }
   String filepath = pathname + filename;
   File serverFile = new File(filepath);
   fileList.transferTo(serverFile);
 
   //存入數(shù)據(jù)庫
   NoticeFile noticeFile = new NoticeFile();
   noticeFile.setNoFileName(filename);
   noticeFile.setNoFilePath(filepath);
   noticeFile.setNoId(0L);
   noticeFileRepository.save(noticeFile);
   return "1";
 
  }catch (Exception e) {
   e.printStackTrace();
   return "0";
  }
 
 }

NoticeFile是我個人在寫項目時創(chuàng)建的類,讀者可根據(jù)實際情況自行運用。

然后,在controller層中創(chuàng)建相應(yīng)的函數(shù):

@RequestMapping(value = "/upload", method = RequestMethod.POST)
 @ResponseBody
 public Map<String, Object> noticeFile(@RequestParam(name = "file") MultipartFile files) {
  String msg = noticeFileService.uploadNoticeFile(files);
 
  Map map = new HashMap();
  if (msg == "1") {
   map.put("code", "0");
  } else {
   map.put("code", "1");
  }
  return map;
 }

以上,即實現(xiàn)了多文件上傳的全部功能。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲總結(jié)分析

    Java 異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲總結(jié)分析

    異常是程序之中導(dǎo)致程序中斷的一種指令流,異常一旦出現(xiàn)并且沒有進行合理處理的話,那么程序就將中斷執(zhí)行,這篇文章綜合介紹了異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲
    2021-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之鏈表的增刪查改詳解

    Java數(shù)據(jù)結(jié)構(gòu)之鏈表的增刪查改詳解

    今天帶大家來學(xué)習(xí)Java鏈表的增刪改查的相關(guān)知識,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 歸并排序的原理及java代碼實現(xiàn)

    歸并排序的原理及java代碼實現(xiàn)

    歸并(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然后再把有序子序列合并為整體有序序列。遞歸形式的算法在形式上較簡潔,但實用性很差。一般情況下,很少利用二路歸并排序法進行內(nèi)部排序。
    2016-02-02
  • Java 中的HashMap詳解和使用示例_動力節(jié)點Java學(xué)院整理

    Java 中的HashMap詳解和使用示例_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了Java 中的HashMap詳解和使用示例_動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下
    2017-05-05
  • SpringBoot?Validation快速實現(xiàn)數(shù)據(jù)校驗的示例代碼

    SpringBoot?Validation快速實現(xiàn)數(shù)據(jù)校驗的示例代碼

    在實際開發(fā)中,肯定會經(jīng)常遇到對參數(shù)字段進行校驗的場景,通常我們只能寫大量的if else來完成校驗工作,而如果使用SpringBoot Validation則可以輕松的通過注解來完成,接下來小編給大家介紹下利用SpringBoot?Validation快速實現(xiàn)數(shù)據(jù)校驗的示例代碼,需要的朋友參考下吧
    2022-06-06
  • 關(guān)于PreparedStatement的setObject作用及說明

    關(guān)于PreparedStatement的setObject作用及說明

    這篇文章主要介紹了關(guān)于PreparedStatement的setObject作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • springboot項目啟動后執(zhí)行方法的三種方式

    springboot項目啟動后執(zhí)行方法的三種方式

    有時項目需求,需要項目啟動的時候向數(shù)據(jù)庫中查詢一下系統(tǒng)屬性,或者需要加載某個特定的方法,下面這篇文章主要給大家介紹了關(guān)于springboot項目啟動后執(zhí)行方法的三種方式,需要的朋友可以參考下
    2022-06-06
  • 深入理解ThreadLocal工作原理及使用示例

    深入理解ThreadLocal工作原理及使用示例

    這篇文章主要介紹了深入理解ThreadLocal工作原理及使用示例,涉及ThreadLocal<T> 簡介和使用示例及ThreadLocal<T>的原理等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Mybatis中攔截器的使用場景和技巧分享

    Mybatis中攔截器的使用場景和技巧分享

    Mybatis提供了一些機制,可以允許我們在做數(shù)據(jù)庫操作的時候進行我們額外的一些程序,當(dāng)然,這看起來并沒有JPA的EntityListener好用,本文小編將給大家詳細(xì)的介紹了Mybatis中攔截器的使用場景和技巧,需要的朋友可以參考下
    2023-10-10
  • java中的除法運算和取模運算解讀

    java中的除法運算和取模運算解讀

    這篇文章主要介紹了java中的除法運算和取模運算,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

无极县| 临沂市| 当阳市| 长寿区| 株洲市| 永宁县| 大安市| 锡林郭勒盟| 怀安县| 新建县| 新建县| 芷江| 阿鲁科尔沁旗| 兴安盟| 南涧| 泸溪县| 双流县| 长葛市| 荣昌县| 东乌| 郁南县| 北宁市| 明光市| 从江县| 延寿县| 东方市| 沙田区| 广宗县| 吴江市| 定远县| 柳林县| 龙泉市| 泰兴市| 六安市| 陆良县| 凤山市| 铁力市| 五寨县| 库尔勒市| 苏尼特左旗| 枞阳县|