在Web服务中保存图像的最佳实践

时间:2013-06-19 14:33:10

标签: java image web-services jersey crud

我有一个使用REST Web服务的应用程序来与其他人同步数据。到目前为止,数据只是基于文本的,因此我使用XML文件将数据存储在数据库中并将其加载到客户端上。

但是现在我想扩展这个应用程序来添加图像并将它们放在Web服务上。我不确定这个用例的最佳做法是什么。

1)将图像保存在数据库中

2)将其保存在文件系统上,并将数据库中的链接添加到路径

那你会做什么以及为什么?

我需要一个来自Java客户端的来自/来自Jersey REST Web-Service的存储/加载映像的示例。 :)

1 个答案:

答案 0 :(得分:2)

有一些方向,但没有完整的代码来喂你。希望您使用这些技巧自行开发REST服务。

  1. 您需要开发一项服务以接受请求中的多部分数据。它可以是multipart / form或mulitpart / mixed,具体取决于你的选择。

  2. 您可以将文件保存在磁盘上,并可以将其存储在数据库中的路径和其他详细信息,以便日后检索。您可能需要有关GET / PUT / DELETE等请求的文件详细信息。

  3. 您可能希望在请求中获取实际文件流以及有关文件的一些详细信息,例如名称等。因此,您可能必须为此创建文件详细信息类。

  4. 以下是此类服务的示例方法合同:

    /**
     * 
     * @param imageFileInputStream actual file stream
     * @param imageUploadConfig image details
     * @return Response
     */ 
    
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadImageFile(@FormDataParam("imageUploadConfig") String strImageUploadConfig,
            @FormDataParam("imagefile") InputStream imageFileInputStream);