ssm的图片上传中,想把图片存在web目录的image下,应该怎么设置存储路径
时间: 2023-06-13 13:09:07 浏览: 138
在 SSM 中实现图片上传并存储到 web 目录的 image 下,可以按照以下步骤进行设置存储路径:
1. 在项目的 src/main/webapp 目录下创建一个名为 image 的文件夹,用于存储上传的图片。
2. 在 Spring 配置文件中配置文件上传的相关信息,如下所示:
```xml
<!-- 文件上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760" />
<property name="defaultEncoding" value="UTF-8" />
<property name="resolveLazily" value="true" />
</bean>
```
其中,maxUploadSize 表示文件上传的最大大小,单位为字节;defaultEncoding 表示上传的文件名编码方式,默认为 UTF-8;resolveLazily 表示是否在需要解析文件时才解析,默认为 true。
3. 在 Controller 中编写处理文件上传的方法,如下所示:
```java
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取上传文件名
String fileName = file.getOriginalFilename();
// 获取上传文件的扩展名
String extension = FilenameUtils.getExtension(fileName);
// 设置保存文件的路径
String savePath = request.getSession().getServletContext().getRealPath("/") + "image/";
// 创建保存文件的目录
File dir = new File(savePath);
if (!dir.exists()) {
dir.mkdirs();
}
// 生成保存文件的新文件名
String newFileName = UUID.randomUUID().toString() + "." + extension;
// 保存文件到指定路径
file.transferTo(new File(savePath + newFileName));
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
return "success";
}
```
其中,@RequestParam("file") 表示上传文件的参数名,MultipartFile 表示上传的文件类型。在方法中,首先判断上传的文件是否为空,然后获取上传文件的文件名、扩展名、保存路径等信息,最后将文件保存到指定的路径下。
4. 在页面中编写表单,用于上传文件,如下所示:
```html
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
```
其中,enctype 属性表示表单的编码方式,当表单中包含文件上传时,必须设置为 multipart/form-data。
通过以上步骤,就可以在 SSM 中实现图片上传并存储到 web 目录的 image 下了。