Restful Web Service -file下载

时间:2013-09-10 09:50:19

标签: rest

当我想使用RestFul WebService和jersy下载文本文件(名称是demo.txt)并通过它访问它时,我收到以下错误: HTTP状态500 - c:\ demo.txt(系统找不到指定的文件)我在C:驱动器中有demo.txt 我的代码是:

@Path("/file")
public class FileService {

@GET
@Path("/download")
@Produces("text/plain")
public Response getFile(){
    File file=new File("c:\\demo.txt");
    ResponseBuilder builder=Response.ok((Object)file);
    builder.header("Content-Disposition","attachment; filename=\"test1.txt\"");
    return builder.build();
}
}

请提前帮助我

1 个答案:

答案 0 :(得分:0)

几天前我正在解决同样的问题。 最好的办法是用byte []转换文件,比如

byte [] buffer = IOUtils.toByteArray(is);

其中'is'是您要下载的文件的输入流对象,然后替换您的代码:

@Path("/file")
public class FileService {

@GET
@Path("/download")
@Produces("text/plain")
public Response getFile(){
    ResponseBuilder builder=Response.ok((Object)buffer);
    builder.header("Content-Disposition","attachment; filename=\"test1.txt\"");
    return builder.build();
}
}

这很有效。试着让我知道。