您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何用ssm框架實現Springmvc文件上傳,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、上傳:
1)編寫前臺文件上傳表單。Method必須為post,enctype為mutipart/form-data
<body> <%--文件上傳 1)method必須指定為post 2)enctype必須指定為multipart/form-data --%> <h2>頭像上傳</h2> <form action="${pageContext.request.contextPath}/admin/headpic" method="post" enctype="multipart/form-data"> 選擇頭像:<input type="file" name="headpic"/> <%-- ${param.屬性值}==request.getParameter(屬性值)--%> <input type="text" name="id" value="${param.id}"> <input type="submit" value="上傳"/> </form> </body>
2)編寫控制層代碼,獲取上傳的文件數據,并保存MultipartFile;
//MultipartFile:用來接收上傳的文件,參數名與input的name一直 //@SessionAttribute("admin"):獲取session域中的值 //@RequestParam(required = false):指定對應的參數可以為空,不是必須有值 @RequestMapping("/headpic") public String headPic(MultipartFile headpic,@RequestParam(required = false) Admin admin,Integer id) throws IOException { String filename = headpic.getOriginalFilename(); System.out.println("上傳的文件名:"+filename); File file=new File("E:/headpic/"+filename); if (!file.getParentFile().exists()){ file.getParentFile().mkdirs();//如果父目錄不存在,創建該目錄 } //保存文件,將上傳的文件內容寫入file headpic.transferTo(file); admin=new Admin(id); //將頭像訪問路徑保存到對象中 admin.setHeadpic("/head/"+filename); //更新用戶頭像信息 adminService.updateHeadPic(admin); return "redirect:list"; }
3)在springmvc配置文件中配置文件上傳配置項。配置multipartResolver;
<!--配置文件上傳--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--設置文件編碼格式--> <property name="defaultEncoding" value="UTF-8"/> <!--設置最大上傳大小--> <property name="maxUploadSize" value="10240000" /> </bean> <!-- 資源映射,將請求地址映射到某個目錄或具體的磁盤路徑 mapping:配置請求地址; location:配置文件路徑 請求地址:/head/logo.png==>E:/headpic/logo.png --> <mvc:resources mapping="/head/**" location="file:E:/headpic/"></mvc:resources> <!-- 請求地址為/headimg/logo.png==>/WEB-INF/img/logo.png--> <mvc:resources mapping="/headimg/**" location="/WEB-INF/img/"></mvc:resources>
二、下載:
1) 獲取到下載文件的路徑;
2) 讀取文件內容到字節數組;
3) 返回字節數組,并聲明返回類型為stream,設置附件名稱;
@GetMapping("/headPicDownload") public ResponseEntity<byte[]> headPicDownload(String filename) throws IOException { //1、定位到文件地址 File file=new File("E:/headpic/"+filename); //2、讀取文件內容 byte[] bytes= FileUtils.readFileToByteArray(file); //3、設置http響應頭 HttpHeaders headers = new HttpHeaders(); //設置ContentType為stream headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //4、設置以附件形式打開 headers.setContentDispositionFormData("attachment",filename); // 內容 頭部信息 http狀態碼 return new ResponseEntity<byte[]>(bytes,headers, HttpStatus.CREATED); }
<td> <img src="${pageContext.request.contextPath}${admin.headpic}"/> <a href="${pageContext.request.contextPath}/admin/headPicDownload?filename=${fn:replace(admin.headpic," rel="external nofollow" /head/","" )}">下載</a> </td>
關于如何用ssm框架實現Springmvc文件上傳就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。