/**
* 下载模板
* @param request
* @author machuxin
* @throws UnsupportedEncodingException
* @since 2018年4月25日09:13:18
*/
@RequestMapping(value="downExcle",produces = "application/json;charset=UTF-8")
@ResponseBody
public ResponseEntity<byte[]> downExcle(HttpServletRequest request,String name)
throws UnsupportedEncodingException {
String path = request.getSession().getServletContext().getRealPath("/temp/XXXX.xls");
File file = new File(path);
HttpHeaders headers = new HttpHeaders();
String downloadFielName = new String("XXXX.xls".getBytes("UTF-8"),"iso-8859-1");
headers.setContentDispositionFormData("attachment", downloadFielName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
try {
return new ResponseEntity<byte[]>(
FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
下载过程中,出现下载内容乱码,解决方案如下:
<!-- spring文件下载 -->
<bean id="arrayHttpMessageConverter"
class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<ref bean="arrayHttpMessageConverter" />
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>text/json;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>