ssm框架下的页面进行头像设置和更换功能,代码该怎么写
时间: 2023-12-06 12:45:16 浏览: 161
实现头像设置和更换功能需要以下步骤:
1. 在用户表中添加头像字段。
2. 在页面中展示当前用户头像。
3. 实现用户上传头像功能。
4. 实现用户更换头像功能。
下面是一个简单的代码示例:
1. 在用户表中添加头像字段,例如:
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`avatar` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 在页面中展示当前用户头像,例如:
```
<img src="${pageContext.request.contextPath}/avatar/${currentUser.avatar}" alt="Avatar" class="avatar">
```
3. 实现用户上传头像功能,例如:
```
@RequestMapping(value = "/uploadAvatar", method = RequestMethod.POST)
@ResponseBody
public String uploadAvatar(@RequestParam("file") MultipartFile file, HttpSession session) {
User currentUser = (User) session.getAttribute("currentUser");
if (file.isEmpty()) {
return "请选择要上传的文件";
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String filePath = "D:/avatar/";
fileName = currentUser.getId() + suffixName;
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
currentUser.setAvatar(fileName);
userService.updateUser(currentUser);
session.setAttribute("currentUser", currentUser);
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败";
}
```
4. 实现用户更换头像功能,例如:
```
@RequestMapping(value = "/changeAvatar", method = RequestMethod.POST)
@ResponseBody
public String changeAvatar(@RequestParam("file") MultipartFile file, HttpSession session) {
User currentUser = (User) session.getAttribute("currentUser");
if (file.isEmpty()) {
return "请选择要上传的文件";
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String filePath = "D:/avatar/";
fileName = currentUser.getId() + suffixName;
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
currentUser.setAvatar(fileName);
userService.updateUser(currentUser);
session.setAttribute("currentUser", currentUser);
return "更换成功";
} catch (IOException e) {
e.printStackTrace();
}
return "更换失败";
}
```
以上代码仅供参考,具体实现还需要根据实际需求进行调整。
阅读全文