从服务器位置从REST返回文件

时间:2015-01-20 11:08:42

标签: java file rest http

您好我在REST服务类

中使用以下代码返回文件
@Path("/file")
public class FileService {

    private static final String FILE_PATH = "c:\\file.log";
    @GET
    @Path("/get")
    @Produces("text/plain")
    public Response getFile() {
        File file = new File(FILE_PATH);

        ResponseBuilder response = Response.ok((Object) file);
        response.header("Content-Disposition", "attachment; filename=\"file_from_server.log\"");
        return response.build();
    }
}

我只想知道如何传递来自HTTP调用的文件,例如 " http://www.analysis.im/uploads/seminar/pdf-sample.pdf"。上面的代码从驱动器调用。我想通过REST调用从服务器返回文件。

1 个答案:

答案 0 :(得分:1)

您必须阅读文件内容,设置适当的媒体类型并将内容作为字节数组返回,类似于以下内容:

final byte[] bytes = ...;
final String mimeType = ...;

Response.status(Response.Status.OK).entity(bytes).type(mimeType).build();