springmvc实现文件上传下载
时间: 2023-12-08 22:04:38 浏览: 105
要实现Spring MVC的文件上传和下载功能,需要进行以下步骤:
1、引入Apache Commons FileUpload组件的依赖。在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
```
2、配置文件上传解析器。在Spring MVC的配置文件中,配置一个MultipartResolver的Bean用于处理文件上传请求。
3、创建文件上传的表单。在HTML表单中,设置enctype为"multipart/form-data",并添加一个文件选择框。
4、创建文件上传的控制器。在控制器中,使用MultipartFile参数接收上传的文件,并执行相应的操作,比如保存文件到指定位置。
5、创建文件下载的控制器。在控制器中,使用ResponseEntity<byte[]>对象来实现文件的下载,设置相应的响应头信息,如Content-Disposition和文件名。
下面是一个示例的代码,演示了如何实现文件上传和下载:
```
// 文件上传的控制器
@Controller
public class FileUploadController {
@RequestMapping("/fileUpload")
public String testFileUpload(MultipartFile photo, HttpSession session) throws IOException {
String filename = photo.getOriginalFilename();
ServletContext servletContext = session.getServletContext();
String realPath = servletContext.getRealPath("photo");
File file = new File(realPath);
if (!file.exists()) {
file.mkdir();
}
String finalPath = realPath + File.separator + filename;
photo.transferTo(new File(finalPath));
return "success";
}
}
// 文件下载的控制器
@Controller
public class FileDownloadController {
@RequestMapping("/fileDownload")
public ResponseEntity<byte[]> testFileDownload(HttpSession session) throws IOException {
ServletContext servletContext = session.getServletContext();
String realPath = servletContext.getRealPath("static/img/a.jpg");
InputStream inputStream = new FileInputStream(realPath);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
MultiValueMap<String, String> headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment;filename=a.jpg");
HttpStatus status = HttpStatus.OK;
ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers, status);
inputStream.close();
return responseEntity;
}
}
// 文件上传的表单
<form action="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="photo" multiple>
<input type="submit" value="上传"/>
</form>
```
通过以上步骤,你可以在Spring MVC中实现文件的上传和下载功能。
阅读全文