SSM实现图片上传
时间: 2023-08-01 20:06:22 浏览: 42
实现图片上传可以使用SpringMVC的MultipartFile来处理文件上传,以下是一个简单的示例代码:
1.在JSP页面中添加上传组件:
```
<form method="post" action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
```
2.在Controller中编写文件上传处理方法:
```
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件后缀
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
// 生成新的文件名
String newFileName = UUID.randomUUID().toString().replace("-", "") + "." + suffix;
// 获取上传文件的目录
String uploadPath = request.getSession().getServletContext().getRealPath("/images");
// 如果目录不存在,则创建目录
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdirs();
}
// 创建文件路径
String filePath = uploadPath + File.separator + newFileName;
// 将上传文件保存到目标文件中
file.transferTo(new File(filePath));
return "redirect:/success";
}
```
上述代码中,我们首先获取上传的文件名和后缀,然后生成新的文件名,再获取文件上传的目录,如果该目录不存在则创建,最后将上传的文件保存到目标文件中。
需要注意的是,如果上传文件的大小超出了SpringMVC默认的限制,需要在配置文件中进行修改。例如,在spring-mvc.xml中添加以下内容:
```
<!-- 配置文件上传大小限制为10MB -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"/>
</bean>
```
其中,maxUploadSize表示最大上传文件大小,单位为字节。上面的配置将上传文件大小限制为10MB。