从tomcat服务器向客户端发送图像

时间:2014-07-07 07:08:06

标签: image tomcat jersey

我正在为电子商务网站构建一个框架。我用jersey来创建REST API。我需要根据请求将图像发送给客户端。 我怎样才能从我的应用程序服务器那样做Tomcat和jersey作为REST API?

由于我是新手,我不知道如何将图像作为项目显示给Android客户端。

1 个答案:

答案 0 :(得分:1)

每个资源都由URI标识,客户端将通过查询URL来请求特定图像或一堆图像,因此您只需要公开服务,以下服务是将单个图像发送到客户端的示例。 / p>

@GET
@Path("/images/{imageId}")
@Produces("image/png")
public Response downloadImage(@PathParam("imageId") String imageId) {
    MultiMediaDB imageDb = new MultiMediaDB();
    String filePath = imageDb.getImage(imageId);
    File file = new File(filePath);
    ResponseBuilder response = Response.ok((Object) file);
    response.header("Content-Disposition",
            "attachment; filename=\"fileName.png\"");
    return response.build();
}

MultiMediaDB是我从DB获取文件位置的自定义类,您可以将其硬编码为现在用于测试目的,如 D:\ server_image.png 。 您需要提及内容处理作为附件,以便不会下载该文件,而是附加到表单。

在Android中你只是需要从HttpURLConnection对象读取输入流并将其发送到位图,如下所示

URL url = new URL(BaseUrl + "/images/" + imageId);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
iStream = urlConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(iStream);

您可以将该位图设置为imageview或您拥有的容器。