使用JAX-RS下载使用RESTful Web服务的文件列表

时间:2016-11-17 20:43:47

标签: java file jax-rs

取自http://www.concretepage.com/webservices/download-file-using-restful-web-services-jax-rs,这是从jax-rs rest服务下载文件的代码

@Path("/restwb") 
public class FileResource {
    @GET
    @Path("/download/{fname}/{ext}")
        @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response  downloadFile(@PathParam("fname") String fileName,@PathParam("ext") String fileExt){
        File file = new File("C:/temp/"+fileName+"."+fileExt);
        ResponseBuilder rb = Response.ok(file);
        rb.header("Content-Disposition", "attachment; filename=" + file.getName());
        Response response = rb.build();
        return response;
    }
} 

我现在的问题是,为了下载文件对象(ArrayList)的列表,响应应该是什么样的?

我们可以写一下:

List<File> lFiles = new ArrayList<File>();
...
ResponseBuilder rb = Response.ok(lFiles);

1 个答案:

答案 0 :(得分:-1)

您无法在同一请求中下载多个文件。如果您需要下载多个文件,则必须创建存档,然后下载存档文件。

这是因为文件的原始字节是在HTTP响应中发送的,而HTTP标头用于翻译内容,你只能设置一组标题HTTP响应。