OK,SpringMVC实现文件上传下载的全过程可以包含以下几个步骤:
- 添加MultipartResolver配置
在SpringMVC配置文件中,添加MultipartResolver配置,用于处理文件上传的请求。示例代码如下:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<property name="maxUploadSize" value="10485760"/>
<property name="maxInMemorySize" value="4096"/>
</bean>
- 编写上传文件的表单页面
在表单页面中,添加文件上传的表单字段。示例代码如下:
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
- 实现文件上传的Controller方法
在Controller中,添加文件上传的方法。该方法中通过MultipartFile对象获取到上传的文件,并保存到指定的文件路径中。示例代码如下:
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
if (!file.isEmpty()) {
String fileName = file.getOriginalFilename();
String filePath = "/tmp/" + fileName;
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(filePath));
outputStream.write(file.getBytes());
outputStream.flush();
outputStream.close();
return "文件上传成功:" + filePath;
} else {
return "文件上传失败";
}
}
- 实现文件下载的Controller方法
在Controller中,添加文件下载的方法。该方法根据文件路径读取文件,并将文件内容输出到Response中,实现文件下载功能。示例代码如下:
@RequestMapping("/download")
public void download(HttpServletResponse response) throws IOException {
String filePath = "/tmp/test.txt";
File file = new File(filePath);
if (file.exists()) {
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
}
以上是完整的SpringMVC实现文件上传下载的全过程。具体实现方式可以根据项目的具体情况进行修改和优化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC实现文件上传下载的全过程 - Python技术站