前言

  日常開發中,大多數專案都會涉及到附件上傳、回顯、下載等功能,本文記錄封裝通用附件管理模組,並與業務模組進行整合實現上傳、回顯、下載

  我們之前已經對檔案上傳下載有過記錄,傳送門:基於“formData批量上傳的多種實現” 的多圖片預覽、上傳的多種實現formData批量上傳的多種實現自定義input檔案上傳樣式,這裡也是基於之前的寫一個完整例子

 

  技術棧:layui + thymeleaf + springboot

  程式碼編寫

  專案結構

  前端

  定義模板

  指令碼

  後端

  Vo類

  Controller

  測試效果

  test.html頁面有兩個測試表單,分別整合附件管理模組,需要引入線上jq、layui依賴,再引入我們的附件管理css、js指令碼

  上傳

    //表單提交
function submit1() {
//呼叫自己的儲存業務
let testFormData = $("#testForm1").serializeObject();
console.log(testFormData); //上傳附件
Attachment.upload("123456");
}

  上傳的檔案在AttachmentVo的files陣列中

  

  回顯可編輯

    //表單回顯(可編輯)
function showForm1() {
//回顯基礎資料
$("#testForm1").form({username:"張三",age:18}); //回顯附件
Attachment.showDndEditAttachments("123456");
}

  重新編輯時,刪掉的附件在AttachmentVo的deletes陣列中,新上傳的附件在files陣列中

  回顯不可編輯

    //表單回顯(不可編輯)
function showForm2() {
//回顯基礎資料
$("#testForm2").form({username:"李四",age:81}); //禁用表單、以及隱藏按鈕
$("#testForm2 input").prop("disabled", true);
$("#button21").remove();
$("#button22").remove(); //回顯附件
Attachment.showDndDownloadAttachments("7890");
}

  不可編輯的回顯中,可以進行下載附件操作

  下載

  後記

  不同的業務表單再也不用自己維護附件,直接引入我們通用的附件管理模組,快速實現功能、風格統一

  程式碼開源

  程式碼已經開源、託管到我的GitHub、碼雲:

  GitHub:https://github.com/huanzi-qch/springBoot

  碼雲:https://gitee.com/huanzi-qch/springBoot