如何通过REST使用Java将文件夹作为响应发送到客户端?

时间:2014-03-08 10:19:28

标签: java file rest response httpresponse

我想通过REST使用java发送特定文件夹中的文件夹或文件列表作为对客户端的响应。我的服务器端是EJB。

我正在尝试使用以下代码。但是得到了FileNotFoundException

@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFiles() {
    File file = new File("C:\Documents and Settings\Administrator\Desktop\MyFolder");
    return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM).build();
}

尝试使用以下代码。但是得到了NullPointerException

@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFiles() {
    File file = new File("C:\Documents and Settings\Administrator\Desktop\MyFolder");
    ResponseBuilder response = Response.ok(file.listFiles());
    response.header("Content-Disposition", "inline; filename=units.zip");
    return response.build();
}

在Windows机器上工作。

任何人都可以给我任何建议,或者符合工作代码的例子吗?

1 个答案:

答案 0 :(得分:0)

在文件名中使用正斜杠或双反斜杠。

另外,不要指望文件夹自动压缩。您必须创建ZIP存档并将其传递给Response