springmvc上传文件到虚拟目录,重启服务器后文件会消失,如何让文件上传到指定本地目录
时间: 2023-08-28 15:05:20 浏览: 165
当我们上传文件到虚拟目录时,文件会存储在服务器的临时目录中,重启服务器后,这些文件会被删除。为了避免这种情况,我们需要将文件上传到指定的本地目录。
首先,我们需要在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="uploadTempDir" ref="uploadTempDir"/>
</bean>
<bean id="uploadTempDir" class="java.io.File">
<constructor-arg value="C:\upload\temp"/>
</bean>
```
在上述配置中,我们指定了文件上传解析器的最大上传文件大小、默认编码方式和上传临时目录。其中,uploadTempDir指向了一个本地目录,用于存储上传的文件。
然后,我们需要在控制器中处理文件上传请求,并将文件保存到指定本地目录,例如:
```java
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
String fileName = file.getOriginalFilename();
File localFile = new File("C:\\upload\\files\\" + fileName);
file.transferTo(localFile);
return "upload_success";
}
```
在上述代码中,我们通过MultipartFile对象获取上传的文件名,然后将文件保存到本地目录。
最后,我们需要在JSP页面中添加文件上传表单,并指定上传文件的名称,例如:
```html
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
```
这样,当我们上传文件时,文件将被保存到指定本地目录中,重启服务器后,文件仍然存在。
阅读全文