亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot 會員管理系統之處理文件上傳功能

2024-07-14 08:40:13
字體:
來源:轉載
供稿:網友

溫馨提示

Spring Boot會員管理系統的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎。所以,可以學習下這些知識。當然,直接入門的話使用是沒問題,但是,涉及到一些異常和原理的話可能就有些困難。

1. 前端部分

在前端部分addMember.html是通過form表單來提交會員的信息,其中就包括了圖片上傳功能(這里涉及了文件上傳操作),表單部分代碼如下:

<form th:action="@{/admin/addMember}" method="post" enctype="multipart/form-data" id="addMember">              <div class="file-field input-field">                <div class="btn">                  <span>選擇頭像文件</span>                  <input id="file" type="file" name="iconPath" multiple="" placeholder="選擇文件" accept="image/*" onchange="changeToop()">                </div>                <div class="file-path-wrapper">                  <!--<input class="file-path validate" type="text" placeholder="Upload one or more files">-->                  <img id="myimg" src="assets/iconPath/common.jpg" class="img-responsive img-thumbnail" style="width: 20%;height: 20%" />                </div>                <!--頭像文件上傳預覽-->                <script>                  function Id(id){                    return document.getElementById(id);                  }                  function changeToop(){                    var file = Id("file");                    if(file.value===''){                      //設置默認圖片                      Id("myimg").src='assets/iconPath/common.jpg';                    }else{                      preImg("file","myimg");                    }                  }                  //獲取input[file]圖片的url Important                  function getFileUrl(fileId) {                    var url;                    var file = Id(fileId);                    var agent = navigator.userAgent;                    if (agent.indexOf("MSIE")>=1) {                      url = file.value;                    } else if(agent.indexOf("Firefox")>0) {                      url = window.URL.createObjectURL(file.files.item(0));                    } else if(agent.indexOf("Chrome")>0) {                      url = window.URL.createObjectURL(file.files.item(0));                    }                    return url;                  }                  //讀取圖片后預覽                  function preImg(fileId,imgId) {                    var imgPre =Id(imgId);                    imgPre.src = getFileUrl(fileId);                  }                </script>              </div>                            .......                          </form>

這里有一個注意事項:因為涉及文件上傳,所以在form中需要加入enctype="multipart/form-data",而且就是input中的name屬性是與后端中的Controller映射方法的傳入參數名是一一對應的。

2. 后端代碼實現

后端中對于SpringMVC框架可以對于文件進行處理然后我們可以通過傳入參數的方式來接收文件

2.1 Controller處理傳入文件

代碼如下:

@PostMapping("/addMember")  public String addMember(Member member, String gradeName, MultipartFile icon, Map<String, Object> model) {    //處理上傳文件    try {      if (icon == null)//首先判斷上傳文件不為null        return "error";      if (icon.getOriginalFilename().equals("")) //如果上傳文件的原名為空字符串,則證明使用了默認圖像        member.setIconPath("/assets/icon/common.jpg"); //設置為我們的默認圖像路徑      else        //這里通過了自己編寫的文件上傳工具類來處理上傳的MultipartFile,文件名設置為通過UUID產生的字符串        member.setIconPath(FileUploadUtil.upload(icon, "/assets/icon/", UUIDRandomUtil.get32UUID()));    } catch (Exception e) {      e.printStackTrace();      return "error";    }        .......        return "addMemberSuccess";  }

2.2 FileUploadUtil工具類保存文件

在Controller的MultipartFile文件傳入后需要進一步,轉變為FIle并且保存到磁盤當中,所以我分開處理,把Controller的傳入文件交給FileUploadUtil工具類來處理,具體的代碼如下:

public class FileUploadUtil {  /**   * 上傳文件   * @param multipartFile multipartFile   * @param prefixPath 前綴路徑,相對于整個項目中的路徑,路徑最前面不用加入“/”   * @param fileName 上傳后的文件名   * @return 上傳后最終的相對路徑+文件名   * @throws Exception 有可能空指針異常和IO異常   */  public static String upload(MultipartFile multipartFile, String prefixPath, String fileName) throws Exception {    //得出上傳的絕對路徑    String uploadPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() +"/static"+ prefixPath;    File file = new File(uploadPath);    if (!file.exists())      if (file.mkdirs())        System.out.println("成功創建目錄");    //獲取上傳的后綴名    String suffixName = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));    //新建最終確定的文件    file = new File(uploadPath+fileName+suffixName);    multipartFile.transferTo(file);    return prefixPath+fileName+suffixName;  }}

上面中的ClassUtils是Spring提供的一個工具類,而調用方法getDefaultClassLoader().getResource("").getPath()是獲取當前項目classpath下的路徑。

以上便是本系統中關于文件上傳的部分內容,該系統的源碼以上傳GitHub和下載源碼

總結

以上所述是小編給大家介紹的Spring Boot 會員管理系統之處理文件上傳功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国外色69视频在线观看| 久久久欧美精品| 全球成人中文在线| 亚洲国产精品中文| 欧美高清不卡在线| 亚洲2020天天堂在线观看| 91视频九色网站| 日韩欧美国产成人| 国产精品一区二区电影| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久精品国产一区二区电影| 成人亚洲欧美一区二区三区| 亚洲最大福利视频网| 综合国产在线观看| 国产999精品久久久影片官网| 亚洲自拍偷拍在线| 国产视频一区在线| 欧美丰满少妇xxxxx做受| 亚洲一二在线观看| 成人乱人伦精品视频在线观看| 国产日韩精品电影| 97**国产露脸精品国产| 成人国产精品色哟哟| 菠萝蜜影院一区二区免费| 欧美精品一区二区免费| 欧美成人激情视频| 国产综合色香蕉精品| 久久久久国产一区二区三区| 久久精品99久久香蕉国产色戒| 91精品国产高清久久久久久| 成人日韩av在线| 成人做爽爽免费视频| 亚洲激情中文字幕| 欧美精品久久久久a| 456亚洲影院| 久久精品视频在线观看| 亚洲国产高清高潮精品美女| 久久久噜噜噜久久中文字免| 亚洲另类图片色| 亚洲精品美女久久久久| 欧美精品福利视频| 日韩欧美国产成人| 中文字幕欧美日韩在线| 亚洲aⅴ日韩av电影在线观看| 欧美大学生性色视频| 国产欧美精品日韩| 77777少妇光屁股久久一区| 国产日本欧美一区二区三区| 精品偷拍一区二区三区在线看| 日韩精品极品在线观看| 精品国产91久久久| 亚洲成av人片在线观看香蕉| 国产主播喷水一区二区| 日韩中文字在线| 亚洲aⅴ日韩av电影在线观看| 亚洲日本中文字幕免费在线不卡| 国产亚洲综合久久| 久久久久久高潮国产精品视| 国产成人av网址| 久久夜精品va视频免费观看| 奇门遁甲1982国语版免费观看高清| 久99久在线视频| 久久免费精品视频| 日韩电影免费在线观看中文字幕| 日韩精品亚洲视频| 久久99精品久久久久久青青91| 性色av一区二区三区红粉影视| 久久久久久91香蕉国产| 欧洲午夜精品久久久| 欧美另类极品videosbestfree| 在线观看欧美日韩| 国产亚洲精品一区二区| 日韩在线观看免费网站| 亚洲a中文字幕| 456亚洲影院| 久久久91精品国产一区不卡| 日韩精品免费视频| 亚洲国产精彩中文乱码av| 亚洲视频在线免费观看| 国产午夜精品视频免费不卡69堂| 成人精品一区二区三区电影免费| 91av在线免费观看视频| 92看片淫黄大片看国产片| 国产精品丝袜久久久久久不卡| 亚洲视频在线免费看| 欲色天天网综合久久| 欧美性黄网官网| 亚洲欧美中文日韩在线| 日韩av男人的天堂| 亚洲成色777777在线观看影院| 亚洲成**性毛茸茸| 4438全国成人免费| 亚洲欧美日韩一区在线| 国产精品中文字幕在线| 91国在线精品国内播放| 5278欧美一区二区三区| 欧美成人午夜免费视在线看片| 欧美亚州一区二区三区| 亚洲娇小xxxx欧美娇小| 日韩电影免费观看在线| 亚洲精品国产精品国产自| 欧美日韩在线一区| 亚洲自拍小视频免费观看| 欧美激情网站在线观看| 中文字幕日韩精品在线观看| 中文字幕视频一区二区在线有码| 国产成人综合亚洲| 日韩三级影视基地| 亚洲欧美日韩国产中文专区| 亚洲精品一区久久久久久| 国产精品久久久久久久av电影| www.日韩不卡电影av| 亚洲v日韩v综合v精品v| 国产精品久久久久久久久免费| 色偷偷噜噜噜亚洲男人| 国产精品视频99| 久久久亚洲影院| 久久香蕉国产线看观看网| 在线播放国产一区二区三区| 中文字幕精品久久| 亚洲精品videossex少妇| 成人乱色短篇合集| 久久久欧美一区二区| 久久中文字幕国产| 久久精品视频中文字幕| 精品人伦一区二区三区蜜桃网站| 日韩欧美在线免费| 欧美丰满片xxx777| 久久精品视频网站| 色综合导航网站| 国产精品久久久久久久7电影| 国产精品久久久久久av下载红粉| 日韩欧美第一页| 国产精品久久一区| 欧美高清videos高潮hd| 久久资源免费视频| 久久艹在线视频| 精品国产一区二区三区四区在线观看| 国产日韩欧美在线观看| 国产精品视频网| 精品国偷自产在线视频| 日韩高清a**址| 91影视免费在线观看| 欧美国产日韩一区二区在线观看| 亚洲黄页网在线观看| 国产成人综合亚洲| 国产在线视频不卡| 国产视频久久久久久久| 欧美性生活大片免费观看网址| 欧美日韩在线视频一区二区| 成人网在线观看| 色婷婷av一区二区三区久久| 欧美老少做受xxxx高潮| 国产一区二区三区中文| 国产日韩综合一区二区性色av| 97视频国产在线| 红桃视频成人在线观看| 精品国产鲁一鲁一区二区张丽| 亚洲男人天堂2023| 在线观看中文字幕亚洲| 欧美黑人xxx| 久久手机精品视频| 亚洲美女av在线| 粗暴蹂躏中文一区二区三区|