ssm的图片上传中,想把图片保存在的WEB-INF的image下,应该怎么设置存储路径
时间: 2023-06-13 17:08:45 浏览: 49
在SSM框架中,图片上传后存储路径的设置需要在Spring的配置文件中进行。你可以在Spring的配置文件中添加以下代码:
```xml
<!-- 文件上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件大小的上限为10MB -->
<property name="maxUploadSize" value="10485760"/>
<!-- 设置上传文件存储路径 -->
<property name="uploadTempDir" value="/WEB-INF/image"/>
</bean>
```
上述代码中,`maxUploadSize`属性设置上传文件大小的上限,单位为字节;`uploadTempDir`属性设置上传文件的临时存储路径,这里将其设置为`/WEB-INF/image`,即存储到web应用的`WEB-INF`目录下的`image`文件夹中。
需要注意的是,`/WEB-INF`目录下的文件不能被直接访问,因此你可能需要通过Servlet或其他方式来实现对这些文件的访问。
相关问题
ssm的图片上传中,想把图片存在web目录的image下,应该怎么设置存储路径
在 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 下了。
ssm访问WEB-INF下的jsp
SSM框架中的Controller类可以直接访问WEB-INF下的jsp页面,可以使用以下方法:
1. 在Controller类中定义方法,返回值为String类型,方法名为jsp页面的名称(不包含后缀名),例如:
```
@RequestMapping("/index")
public String index() {
return "index";
}
```
2. 在Spring的配置文件中添加ViewResolver,用于解析jsp文件的位置和后缀名,例如:
```
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
```
3. 在WEB-INF下创建jsp文件夹,并在文件夹中添加jsp页面,例如:
```
/WEB-INF/jsp/index.jsp
```
4. 访问对应的Controller方法,即可访问WEB-INF下的jsp页面。例如访问http://localhost:8080/projectName/index ,就可以访问到/WEB-INF/jsp/index.jsp页面。