ssm上传头像功能实现
时间: 2023-10-16 10:08:01 浏览: 103
Java后端SSM框架图片上传功能实现方法解析
实现 SSM 上传头像功能,需要在前端页面设计一个上传头像的表单,然后在后端编写上传接口。
1. 前端页面设计
在前端页面中,需要添加一个上传头像的表单,可以使用 HTML 的 form 标签来实现。代码如下:
```html
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传头像"/>
</form>
```
其中,`action` 属性指定了上传接口的 URL,`method` 属性指定了请求的方法为 `POST`,`enctype` 属性指定了表单数据的编码方式为 `multipart/form-data`,这样才可以上传文件。
2. 后端上传接口实现
在后端中,需要使用 Spring MVC 的 `MultipartFile` 类来处理上传的文件。代码如下:
```java
@Controller
public class UploadController {
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile file, HttpSession session) throws IOException {
// 获取上传的文件名
String fileName = file.getOriginalFilename();
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 生成新的文件名
String newFileName = UUID.randomUUID().toString() + suffixName;
// 保存文件到本地磁盘
File dest = new File("upload/" + newFileName);
file.transferTo(dest);
// 将文件路径保存到 session 中
session.setAttribute("avatarPath", dest.getAbsolutePath());
return "redirect:/user/profile";
}
}
```
在上传接口中,`@RequestParam("file")` 注解表示接收名为 `file` 的文件参数,`HttpSession` 是用来保存文件路径的对象。首先,获取上传的文件名,并生成新的文件名,然后将文件保存到本地磁盘,最后将文件路径保存到 session 中,以便后续使用。
3. 显示头像
在用户个人信息页面中,可以通过 session 中保存的文件路径来显示用户的头像。代码如下:
```html
<img src="${sessionScope.avatarPath}" alt="avatar">
```
通过 `${sessionScope.avatarPath}` 取出 session 中保存的文件路径,并将其作为 `src` 属性值赋给 `<img>` 标签,即可显示用户的头像。
以上就是实现 SSM 上传头像功能的步骤。需要注意的是,上传文件时需要对文件进行校验和限制,以保证文件的安全性和上传效率。
阅读全文