package com.photo.controller;
import com.photo.dao.UserMapper;
import com.photo.pojo.User;
import com.photo.service.UserService;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Base64;
@Controller
public class UserController {
@Autowired
UserService userService;
@Qualifier("userMapper")
@Autowired
private UserMapper userMapper;
//1登录界面---登录功能-----------------------------------------------------------------------------------------------
// box的作用是防止初次访问页面时直接提示"请填写用户名和密码"
@RequestMapping("/login")
public String login(
@RequestParam(name = "id", required = false) Integer id,
@RequestParam(name = "password", required = false) String password,
@RequestParam(name ="box",required = false) String box,
Model model) {
String errorMessage = null;
if (id != null && password != null ) {
User user = userService.findUser(id, password);
if (user == null) {
errorMessage = "用户名或密码不合法";
}else {
userService.updateLoginUser(id);
return "redirect:main";
}
}else if(box != null){
errorMessage = "请填写用户名和密码";
}
model.addAttribute("errorMessage", errorMessage);
return "login";
}
@GetMapping("/main")
public String loginSuccess(Model model) {
User user0 = userMapper.findById(888888);
User userXXX = userMapper.findById(Integer.parseInt(user0.getName()));
//照片获取
if (userXXX != null && userXXX.getAvatar() != null) {
// 将头像数据以字节数组的形式传递给 JSP 页面
// 注意:在 JSP 页面中显示图片时,您可能需要将字节数组转换为 Base64 编码的字符串
String avatarBase64 = Base64.getEncoder().encodeToString(userXXX.getAvatar());
model.addAttribute("avatarBase64", avatarBase64);
} else {
// 处理用户不存在或头像为空的情况
model.addAttribute("avatar", null);
}
model.addAttribute("userXXX", userXXX);
return "main"; // Return the success page view name
}
//2注册界面---注册功能-----------------------------------------------------------------------------------------------
@GetMapping("/register")
public String showRegistrationForm(Model model) {
model.addAttribute("user", new User());
return "register";
}
@PostMapping("/register")
public String registerUser(@ModelAttribute("user") User user, Model model) {
if (user.getId() == null || user.getPassword() == null || user.getName() == null ||
user.getId().toString().isEmpty() || user.getPassword().isEmpty() || user.getName().isEmpty()) {
// 信息校验不为空
model.addAttribute("error", "请将信息补充完整");
return "register";
}
boolean registrationSuccess = userService.register(user);
if (registrationSuccess) {
model.addAttribute("error", "注册已成功");
return "register";
} else {
model.addAttribute("error", "用户已存在");
return "register";
}
}
//密码修改界面---修改功能-------------------------------------------------------------------------------------------
@GetMapping("/updatePassword")
public String showRegistrationForm2(Model model) {
model.addAttribute("user", new User());
return "forgotPassword";
}
@PostMapping("/updatePassword")
public String registerUser2(@ModelAttribute("user") User user, Model model) {
if (user.getId() == null || user.getPassword() == null || user.getName() == null ||
user.getId().toString().isEmpty() || user.getPassword().isEmpty() || user.getName().isEmpty()) {
// 信息校验不为空
model.addAttribute("error", "请将信息补充完整");
return "forgotPassword";
}
boolean registrationSuccess = userService.updateUser(user);
if (registrationSuccess) {
model.addAttribute("error", "修改成功");
return "forgotPassword";
} else {
model.addAttribute("error", "信息错误");
return "forgotPassword";
}
}
//主界面---获取用户信息---
// 测试照片显示与上传------------------------------------------------------------------------------------------------------------------------------
@RequestMapping(value = "/user/avatar/{id}", method = RequestMethod.GET)
public String getUserAvatar(@PathVariable int id, Model model) {
User user = userService.getUserById(id); // 或者直接调用 userMapper.getUserById(id)
if (user != null && user.getAvatar() != null) {
// 将头像数据以字节数组的形式传递给 JSP 页面
// 注意:在 JSP 页面中显示图片时,您可能需要将字节数组转换为 Base64 编码的字符串
String avatarBase64 = Base64.getEncoder().encodeToString(user.getAvatar());
model.addAttribute("avatarBase64", avatarBase64);
} else {
// 处理用户不存在或头像为空的情况
model.addAttribute("avatar", null);
}
// 返回 JSP 页面的名称
return "userAvatar";
}
//上传头像
@PostMapping("/uploadAvatar")
public String uploadAvatar(@RequestParam("avatarFile") MultipartFile avatarFile,
@RequestParam("id") Integer id,
Model model) {
try {
// 验证文件类型和大小(可选)
if (!avatarFile.isEmpty() && avatarFile.getContentType().startsWith("image/")) {
byte[] avatarBytes = avatarFile.getBytes();
userService.updateAvatar(id, avatarBytes);
model.addAttribute("message", "头像上传成功!");
} else {
model.addAttribute("message", "请上传一个有效的图片文件!");
}
} catch (IOException e) {
e.printStackTrace();
model.addAttribute("message", "头像上传失败,请重试!");
}
return "uploadResult"; // 跳转到结果页面
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
技巧速记SSM上传照片至数据库存储#mysql存照片#ssm上传照片
共143个文件
jar:64个
xml:28个
jsp:16个
需积分: 0 0 下载量 89 浏览量
更新于2024-12-19
收藏 40.84MB RAR 举报
技巧速记SSM上传照片至数据库存储#mysql存照片#ssm上传照片
收起资源包目录
技巧速记SSM上传照片至数据库存储#mysql存照片#ssm上传照片 (143个子文件)
UserController.class 6KB
UserController.class 6KB
UserServiceImpl.class 2KB
UserServiceImpl.class 2KB
User.class 2KB
User.class 2KB
UserMapper.class 1KB
UserMapper.class 1KB
UserService.class 474B
UserService.class 474B
login1.css 696B
login1.css 696B
.gitignore 490B
.gitignore 190B
hibernate-core-6.5.3.Final.jar 11.25MB
poi-ooxml-schemas-3.9.jar 4.58MB
byte-buddy-1.14.15.jar 4.02MB
xmlbeans-2.3.0.jar 2.54MB
mysql-connector-java-8.0.16.jar 2.19MB
poi-3.9.jar 1.78MB
aspectjweaver-1.8.9.jar 1.78MB
protobuf-java-3.6.1.jar 1.36MB
spring-context-4.3.9.RELEASE.jar 1.09MB
spring-core-4.3.9.RELEASE.jar 1.07MB
poi-ooxml-3.9.jar 915KB
spring-webmvc-4.3.9.RELEASE.jar 894KB
jaxb-runtime-4.0.2.jar 887KB
spring-web-4.3.9.RELEASE.jar 801KB
spring-beans-4.3.9.RELEASE.jar 745KB
mybatis-3.2.2.jar 683KB
spring-test-4.3.9.RELEASE.jar 586KB
commons-collections-3.2.jar 558KB
log4j-1.2.17.jar 478KB
spring-orm-4.3.9.RELEASE.jar 466KB
spring-websocket-4.3.9.RELEASE.jar 446KB
spring-jdbc-4.3.9.RELEASE.jar 418KB
jstl-1.2.jar 405KB
standard-1.1.2.jar 384KB
spring-messaging-4.3.9.RELEASE.jar 376KB
spring-aop-4.3.9.RELEASE.jar 372KB
jandex-3.1.2.jar 320KB
antlr4-runtime-4.13.0.jar 319KB
dom4j-1.6.1.jar 307KB
spring-jms-4.3.9.RELEASE.jar 282KB
spring-tx-4.3.9.RELEASE.jar 261KB
spring-expression-4.3.9.RELEASE.jar 257KB
commons-lang-2.3.jar 240KB
commons-beanutils-1.7.0.jar 184KB
spring-context-support-4.3.9.RELEASE.jar 183KB
spring-webmvc-portlet-4.3.9.RELEASE.jar 173KB
commons-io-2.2.jar 170KB
jakarta.persistence-api-3.1.0.jar 161KB
jdom-1.0.jar 150KB
jaxb-core-4.0.2.jar 135KB
jakarta.xml.bind-api-4.0.0.jar 124KB
json-lib-2.1-jdk15.jar 122KB
xml-apis-1.0.b2.jar 107KB
validation-api-2.0.1.Final.jar 91KB
spring-oxm-4.3.9.RELEASE.jar 83KB
ezmorph-1.0.3.jar 76KB
txw2-4.0.2.jar 72KB
commons-codec-1.5.jar 71KB
commons-fileupload-1.3.3.jar 69KB
classmate-1.5.1.jar 66KB
hibernate-commons-annotations-6.0.6.Final.jar 66KB
jakarta.activation-api-2.1.0.jar 62KB
jboss-logging-3.5.0.Final.jar 61KB
spring-aspects-4.3.9.RELEASE.jar 57KB
commons-logging-1.1.jar 52KB
mybatis-spring-1.2.2.jar 48KB
jakarta.transaction-api-2.0.1.jar 28KB
annotations-java5-24.1.0.jar 27KB
angus-activation-2.0.0.jar 27KB
stax-api-1.0.1.jar 26KB
istack-commons-runtime-4.1.1.jar 26KB
jakarta.inject-api-2.0.1.jar 10KB
spring-instrument-tomcat-4.3.9.RELEASE.jar 10KB
spring-instrument-4.3.9.RELEASE.jar 7KB
UserController.java 7KB
UserServiceImpl.java 2KB
User.java 1KB
UserMapper.java 832B
UserService.java 346B
main.jsp 4KB
main.jsp 4KB
register.jsp 1KB
register.jsp 1KB
userAvatar.jsp 1KB
userAvatar.jsp 1KB
forgotPassword.jsp 1KB
forgotPassword.jsp 1KB
login.jsp 1KB
login.jsp 1KB
add.jsp 653B
add.jsp 653B
loginSuccess.jsp 344B
loginSuccess.jsp 344B
index.jsp 34B
index.jsp 34B
MANIFEST.MF 106B
共 143 条
- 1
- 2
资源推荐
资源预览
资源评论
109 浏览量
102 浏览量
2023-05-14 上传
2020-03-05 上传
5星 · 资源好评率100%
102 浏览量
125 浏览量
133 浏览量
5星 · 资源好评率100%
2023-06-08 上传
2019-01-02 上传
5星 · 资源好评率100%
187 浏览量
5星 · 资源好评率100%
194 浏览量
2017-10-18 上传
114 浏览量
192 浏览量
5星 · 资源好评率100%
138 浏览量
5星 · 资源好评率100%
2018-09-19 上传
2020-04-17 上传
2023-07-01 上传
145 浏览量
2023-07-01 上传
资源评论
多云axudj
- 粉丝: 9
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- p019基于Hadoop的租房数据分析系统的设计与实现-flask.zip(Python毕设源码+sql文件+文档)
- p019基于Hadoop的租房数据分析系统的设计与实现-flask.zip(Python毕设源码+sql文件+文档)
- JavaScript互动教程系统.zip
- 数据库酒店管理信息系统报告+文件 - 基于SQL Server的酒店管理系统课程设计
- 数据库酒店管理信息系统报告+文件 - 基于SQL Server的酒店管理系统课程设计
- 数据库酒店管理信息系统报告+文件.基于SQL Server的酒店管理系统课程设计
- AOP下载下来就能用,亲测好用
- go1.23.4.windows-amd64.msi安装包
- Docker技术中私有镜像库创建与管理详解
- Skype-8.134.76.202.dmg
- winf实验十(1).zip
- 基于java的工会会员管理系统源代码(完整前后端+mysql+说明文档+LW).zip
- 基于java的大学生综合评测系统源代码(完整前后端+mysql+说明文档+LW).zip
- 嵌入式的c语言的开发环境
- 基于java的大学新生报到管理系统有前台源代码(完整前后端+mysql+说明文档+LW).zip
- 基于java的电子商品销售网站源代码(完整前后端+mysql+说明文档+LW).zip
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功