xml 配置
<mvc:annotation-driven conversion-service="conversionService"> <mvc:message-converters> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
controller 层:
@ResponseBody @RequestMapping(value="/travelTemplDownLoad") public ResponseEntity<byte[]> travelTemplDownLoad(String fileName){ String root = request.getSession().getServletContext().getRealPath("/"); String filePath = root+"//template//"+fileName; try { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", new String(fileName.getBytes("UTF-8"),"ISO8859-1")); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(new File(filePath)), headers, HttpStatus.CREATED); } catch (Exception e) { e.printStackTrace(); } return null; }