`
zqb666kkk
  • 浏览: 726099 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

spring 4mvc下载文件的实现

    博客分类:
  • java
阅读更多
网上找到的版本较老 是spring3的
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 这个spring4 已经弃用

spring 4.x的配置和实现为:
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">  
    <property name="messageConverters">  
        <list>  
        <!-- 下载用 -->
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>  
            <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >  
                <property name = "supportedMediaTypes">  
                    <list>  
                        <value>text/plain;charset=UTF-8</value>  
                    </list>  
                </property>  
            </bean>  
        </list>  
    </property>  
</bean>  



@RequestMapping("downloadExcel")
	public ResponseEntity<byte[]> downloadExcel(HttpServletRequest request)
			 {
//		String path = request.getContextPath();
//		String basePath = request.getScheme() + "://" + request.getServerName()
//				+ ":" + request.getServerPort() + path;
		 String realPath = request.getServletContext().getRealPath("/");
		String filepath = realPath + "/admin_files/ordertemplate.xls";
		File file = new File(filepath);
		HttpHeaders headers = new HttpHeaders();
		String fileName = null;
		try {
			fileName = new String("订单模板文件.xls".getBytes("UTF-8"),
					"iso-8859-1");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}// 为了解决中文名称乱码问题
		headers.setContentDispositionFormData("attachment", fileName);
		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;
		}
	}


0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics