溫馨提示
成都創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比北林網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式北林網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋北林地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。
Spring Boot會(huì)員管理系統(tǒng)的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎。所以,可以學(xué)習(xí)下這些知識(shí)。當(dāng)然,直接入門(mén)的話使用是沒(méi)問(wèn)題,但是,涉及到一些異常和原理的話可能就有些困難。
1. 前端部分
在前端部分addMember.html是通過(guò)form表單來(lái)提交會(huì)員的信息,其中就包括了圖片上傳功能(這里涉及了文件上傳操作),表單部分代碼如下:
<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" /> </div> <!--頭像文件上傳預(yù)覽--> <script> function Id(id){ return document.getElementById(id); } function changeToop(){ var file = Id("file"); if(file.value===''){ //設(shè)置默認(rèn)圖片 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; } //讀取圖片后預(yù)覽 function preImg(fileId,imgId) { var imgPre =Id(imgId); imgPre.src = getFileUrl(fileId); } </script> </div> ....... </form>
這里有一個(gè)注意事項(xiàng):因?yàn)樯婕拔募蟼?,所以在form中需要加入enctype="multipart/form-data"
,而且就是input中的name屬性是與后端中的Controller映射方法的傳入?yún)?shù)名是一一對(duì)應(yīng)的。
2. 后端代碼實(shí)現(xiàn)
后端中對(duì)于SpringMVC框架可以對(duì)于文件進(jìn)行處理然后我們可以通過(guò)傳入?yún)?shù)的方式來(lái)接收文件
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("")) //如果上傳文件的原名為空字符串,則證明使用了默認(rèn)圖像 member.setIconPath("/assets/icon/common.jpg"); //設(shè)置為我們的默認(rèn)圖像路徑 else //這里通過(guò)了自己編寫(xiě)的文件上傳工具類(lèi)來(lái)處理上傳的MultipartFile,文件名設(shè)置為通過(guò)UUID產(chǎn)生的字符串 member.setIconPath(FileUploadUtil.upload(icon, "/assets/icon/", UUIDRandomUtil.get32UUID())); } catch (Exception e) { e.printStackTrace(); return "error"; } ....... return "addMemberSuccess"; }
2.2 FileUploadUtil工具類(lèi)保存文件
在Controller的MultipartFile文件傳入后需要進(jìn)一步,轉(zhuǎn)變?yōu)镕Ile并且保存到磁盤(pán)當(dāng)中,所以我分開(kāi)處理,把Controller的傳入文件交給FileUploadUtil工具類(lèi)來(lái)處理,具體的代碼如下:
public class FileUploadUtil { /** * 上傳文件 * @param multipartFile multipartFile * @param prefixPath 前綴路徑,相對(duì)于整個(gè)項(xiàng)目中的路徑,路徑最前面不用加入“/” * @param fileName 上傳后的文件名 * @return 上傳后最終的相對(duì)路徑+文件名 * @throws Exception 有可能空指針異常和IO異常 */ public static String upload(MultipartFile multipartFile, String prefixPath, String fileName) throws Exception { //得出上傳的絕對(duì)路徑 String uploadPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() +"/static"+ prefixPath; File file = new File(uploadPath); if (!file.exists()) if (file.mkdirs()) System.out.println("成功創(chuàng)建目錄"); //獲取上傳的后綴名 String suffixName = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".")); //新建最終確定的文件 file = new File(uploadPath+fileName+suffixName); multipartFile.transferTo(file); return prefixPath+fileName+suffixName; } }
上面中的ClassUtils是Spring提供的一個(gè)工具類(lèi),而調(diào)用方法getDefaultClassLoader().getResource("").getPath()
是獲取當(dāng)前項(xiàng)目classpath下的路徑。
以上便是本系統(tǒng)中關(guān)于文件上傳的部分內(nèi)容,該系統(tǒng)的源碼以上傳GitHub和下載源碼
總結(jié)
以上所述是小編給大家介紹的Spring Boot 會(huì)員管理系統(tǒng)之處理文件上傳功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)頁(yè)題目:SpringBoot會(huì)員管理系統(tǒng)之處理文件上傳功能
文章轉(zhuǎn)載:http://muchs.cn/article0/jchcio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、企業(yè)建站、網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、Google、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)