一.創建圖片虛擬目錄
在上傳圖片之前,先要設置虛擬目錄(以IDEA為例)
- 打開工具欄的運行配置Edit Configurations
-
添加物理目錄和并設置虛擬目錄路徑
- 添加img圖片在img文件夾內
二.SpringMVC上傳頭像
1.SpringMVC對多部件類型的解析
- 上傳圖片SpringMVC.xml配置
在頁面form中提交enctype="multipart/form-data"的數據時,需要springmvc對multipart類型的數據進行解析。在springmvc.xml中配置multipart類型解析器。
<!--文件上傳-->
<bean id ="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
2.添加依賴
<!-- 文件上傳 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
3. 在Login1.jsp頁面form中提交enctype="multipart/form-data"的數據
<form action="/userController/insertUser" method="post" enctype="multipart/form-data">
<input type="text" required="required" placeholder="用戶名" name="userName">
<input type="password" required="required" placeholder="密碼" name="passWord">
<input type="file" name = "imgFile">
<div id="bt">
<input class="but" type="submit" value="注冊">
<a href="register.jsp"><input class="but" type="button" value="返回登錄"></a>
</div>
</form>
4.處理請求UserController.java
@RequestMapping("insertUser")
public String insertUser (HttpServletRequest request, User user, MultipartFile imgFile) throws IOException {
//獲取文件原始名稱
String originalFilename = imgFile.getOriginalFilename();
//上傳圖片
if(imgFile!=null && originalFilename!=null && originalFilename.length()>0){
//存儲圖片的物理路徑
String pic_path = "/home/ubuntu/IDEA/SSM/img/";
//新的圖片名稱
String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
//新圖片
File newFile = new File(pic_path+newFileName);
//將內存中的數據寫入磁盤
imgFile.transferTo(newFile);
userService.insertUser(user,newFileName);
HttpSession session = request.getSession();
session.setAttribute("imgUrl", newFileName);
}
return "item/success";
}
上傳成功
- 成功跳轉頁面success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>成功</title>
</head>
<body>
<h1>成功頁面</h1>
<img style="width: 150px; height: 200px"
src="http://localhost:8080/img/<%=session.getAttribute("imgUrl")%>">
</body>
</html>
文集:SpringMVC框架學習