ssm框架Springmvc文件上傳實(shí)現(xiàn)代碼詳解
一、上傳:
1)編寫前臺(tái)文件上傳表單。Method必須為post,enctype為mutipart/form-data
<body>
<%--文件上傳
1)method必須指定為post
2)enctype必須指定為multipart/form-data
--%>
<h1>頭像上傳</h1>
<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)編寫控制層代碼,獲取上傳的文件數(shù)據(jù),并保存MultipartFile;
//MultipartFile:用來接收上傳的文件,參數(shù)名與input的name一直
//@SessionAttribute("admin"):獲取session域中的值
//@RequestParam(required = false):指定對應(yīng)的參數(shù)可以為空,不是必須有值
@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();//如果父目錄不存在,創(chuàng)建該目錄
}
//保存文件,將上傳的文件內(nèi)容寫入file
headpic.transferTo(file);
admin=new Admin(id);
//將頭像訪問路徑保存到對象中
admin.setHeadpic("/head/"+filename);
//更新用戶頭像信息
adminService.updateHeadPic(admin);
return "redirect:list";
}
3)在springmvc配置文件中配置文件上傳配置項(xiàng)。配置multipartResolver;
<!--配置文件上傳-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--設(shè)置文件編碼格式-->
<property name="defaultEncoding" value="UTF-8"/>
<!--設(shè)置最大上傳大小-->
<property name="maxUploadSize" value="10240000" />
</bean>
<!-- 資源映射,將請求地址映射到某個(gè)目錄或具體的磁盤路徑
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) 讀取文件內(nèi)容到字節(jié)數(shù)組;
3) 返回字節(jié)數(shù)組,并聲明返回類型為stream,設(shè)置附件名稱;
@GetMapping("/headPicDownload")
public ResponseEntity<byte[]> headPicDownload(String filename) throws IOException {
//1、定位到文件地址
File file=new File("E:/headpic/"+filename);
//2、讀取文件內(nèi)容
byte[] bytes= FileUtils.readFileToByteArray(file);
//3、設(shè)置http響應(yīng)頭
HttpHeaders headers = new HttpHeaders();
//設(shè)置ContentType為stream
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//4、設(shè)置以附件形式打開
headers.setContentDispositionFormData("attachment",filename);
// 內(nèi)容 頭部信息 http狀態(tài)碼
return new ResponseEntity<byte[]>(bytes,headers, HttpStatus.CREATED);
}
<td>
<img style="width: 25px;height: 25px;border-radius: 50%;"
src="${pageContext.request.contextPath}${admin.headpic}"/>
<a href="${pageContext.request.contextPath}/admin/headPicDownload?filename=${fn:replace(admin.headpic," rel="external nofollow" /head/","" )}">下載</a>
</td>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java開發(fā)SSM框架具有rest風(fēng)格的SpringMVC
- SpringMVC 整合SSM框架詳解
- Spring+SpringMVC+MyBatis整合實(shí)戰(zhàn)(SSM框架)
- SSM框架整合之Spring+SpringMVC+MyBatis實(shí)踐步驟
- 如何基于ssm框架實(shí)現(xiàn)springmvc攔截器
- 使用IDEA搭建SSM框架的詳細(xì)教程(spring + springMVC +MyBatis)
- Java SSM框架(Spring+SpringMVC+MyBatis)搭建過程
- 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細(xì)教程
- Spring MVC 擴(kuò)展和 SSM 框架整合步驟詳解
相關(guān)文章
spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁操作方法
下面小編就為大家分享一篇spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁操作方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
SpringBoot整合WebService的實(shí)戰(zhàn)案例
WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語言,平臺(tái)等,可以實(shí)現(xiàn)不同的語言間的相互調(diào)用,這篇文章主要給大家介紹了關(guān)于SpringBoot整合WebService的相關(guān)資料,需要的朋友可以參考下2024-07-07
java.io.UncheckedIOException: Cannot delete C
本文主要介紹了java.io.UncheckedIOException: Cannot delete C:\Users\guo\AppData\Local\Temp\tomcat.8081問題,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
JNDI簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了JNDI簡介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08

