2014-06-19 91 views

回答

-1

是的。编写一个单独的端点命中数据库并用该映像进行响应。

1

正如Eric所说,您可以像创建端点一样来存储将图像返回给您的图像。重要步骤总结可能是:

从数据库中检索斑点(为MySQL):

Blob imageBlob = rs.getBlob("file"); 
InputStream binaryStream = imageBlob.getBinaryStream(1, imageBlob.length()); 

创建端点。您可以将InputStream作为实体返回:

@GET 
@Path("/GetFile") 
@Produces("application/octet-stream") 
public Response getFile(@QueryParam("fileId") long fileId) { 
    FileManager fileManager = new FileManager(); 

    try { 
     InputStream inputStream = fileManager.getFileFromDB(fileId); 

     return Response.ok(inputStream, MediaType.APPLICATION_OCTET_STREAM) 
        .build(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return Response.status(Status.NOT_FOUND).build(); 
} 

在客户端,获取。下面是Android的一个小样本,我从我的我的AsyncTask的doInBackground(这需要在后台线程来完成)返回一个位图对象回:

HttpClient httpclient = new DefaultHttpClient(); 
HttpResponse response = httpclient.execute(new HttpGet(<your_url_base>+"/GetFile?fileId=3")); 
content = response.getEntity().getContent(); 
return BitmapFactory.decodeStream(content); 

希望这有助于。

相关问题