jersey 实现文件下载(以ms word 为例)

原创 2015年07月10日 14:27:07

使用Jersey难免会碰到下载文件这样的需求,其实实现起来很简单,以微软word文档为例,代码片段如下:

@GET
@Path("download/document")
@Produces("application/vnd.ms-word;charset=utf-8")
public Response downloadDoc(@Context HttpServletRequest request,
		@Context HttpServletResponse response,
		@QueryParam("id") String id){
	String filepath = "D:/test.doc";
	String filename = filepath.substring(filepath.lastIndexOf("/")+1);
	
	File downloadFile = new File(filepath);
	ResponseBuilder responseBuilder = Response.ok((Object) downloadFile);
	try {
		responseBuilder.header("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(filename, "UTF-8"));
	} catch (UnsupportedEncodingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return responseBuilder.build();
}


其中:@Produces("application/vnd.ms-word;charset=utf-8") 的 “application/vnd.ms-word” 官方文档并没有,但是官方文档有“application/vnd.ms-excel”,因此把excel改成word,试验的结果是成功的。另外 java.net.URLEncoder.encode(filename, "UTF-8") 是确保中文文件名不会乱码。
其他类型的文件下载实现相似,只需要修改@Produces 和文件名即可;
.txt ---> @Produces("text/plain")
.pdf ---> @Produces("application/pdf")
.png ----> @Produces("image/png")
.xls ----> @Produces("aapplication/vnd.ms-excel")
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

用jersey实现文件下载

DownloadResource .javapackage cn.mykoo.ws.resources;import java.io.File;import java.io.FileInputStre...

PDF文件【由Latex、CTex或MS Word等生成】嵌入所有字体的快速解决方法

原文地址:http://software.intel.com/zh-cn/blogs/2011/09/03/pdflatexctexms-word/?cid=sw:prccsdn1974 作...

办公系统中MS Word文件转换为PDF技术方案

MS Word文件转换为PDF技术方案比较多,比较常见的方案是使用开源的OpenOffice,但是此方案存在兼容的问题,有些文件转换不了或出现问题。而采用现成的产品,成本又比较高。通过对各种Word转...
  • xiaoyw
  • xiaoyw
  • 2014-11-27 14:57
  • 1112

jersey文件下载

  • 2015-02-06 15:12
  • 5.37MB
  • 下载

ms office word2003单文件版

  • 2014-10-30 21:11
  • 406KB
  • 下载

jersey上传下载文件及客户端调用代码

基础环境就不说了, 直接上代码: 服务方代码://上转 @POST @Path("Upload") public String postBytes( final byte[] by,...

MS Office word 文件格式详述

  • 2013-12-15 21:20
  • 1.87MB
  • 下载

Jersey 文件下载

Jersey 文件下载Jersey实现文件下载有两种方式,一种是直接将文件作为响应体,一种是使用StreamingOutput对象作为响应体。一、使用文件对象作为响应体Jersey支持直接使用文件对象...

Content-Disposition 文件上传、下载 中文乱码 HTTP头 解决办法 Java Jersey

1、文件上传通过表单上传文件时,如果文件名存在中文则会发生乱码。 <input t
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)