springMVC实现文件下载
springMVC框架提供了文件下载的功能,具体操作如下:
1、在springMVC.xml文件中配置ByteArray转换器
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean" > <mvc:message-converters> <!--把ByteArray加在Json前面--> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
2、定义controller方法
@RequestMapping("/exportArrangeCourseInfo")
public ResponseEntity<byte[]> exportArrangeCourseInfo()throws Exception {
String pathName = "D:\\排课信息.xls";
File file = new File(pathName);
String fileName = "教师排课信息.xls";
HttpHeaders headers = new HttpHeaders();
//下载显示的文件名,解决中文名称乱码问题
String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1");
//通知浏览器以attachment(下载方式)打开文件
headers.setContentDispositionFormData("attachment", downloadFielName);
//application/octet-stream : 二进制流数据(最常见的文件下载)。
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
3、页面调用下载链接
window.location.href="exportArrangeCourseInfo.action"
这样就可以实现一个简单的文件下载功能了。
参考:

浙公网安备 33010602011771号