如何从数据库中检索文件供前端代码使用?(其余部分使用java和jersey)

如何从数据库中检索文件供前端代码使用?(其余部分使用java和jersey),java,database,hibernate,rest,jersey,Java,Database,Hibernate,Rest,Jersey,我正在开发一个聊天应用程序,我需要处理一个已上载到数据库的文件的get请求。我不确定我是否应该返回一个输出流或者一个文件或者什么 其想法是,它将类似于任何其他聊天应用程序,其中图像显示为消息加载。使用输出流似乎是最好的选择,但我不确定如何从数据库中的信息创建输出流,其中包括id、校验和、名称、大小和mime类型 因此,我的问题是: 我应该如何处理这个问题 如果输出流是最好的方式,那么实现它的理想方式是什么 非常感谢您的指导,请告诉我是否可以让问题更清楚,或者是否需要更多细节来回答问题。我不明白如

我正在开发一个聊天应用程序,我需要处理一个已上载到数据库的文件的get请求。我不确定我是否应该返回一个输出流或者一个文件或者什么

其想法是,它将类似于任何其他聊天应用程序,其中图像显示为消息加载。使用输出流似乎是最好的选择,但我不确定如何从数据库中的信息创建输出流,其中包括id、校验和、名称、大小和mime类型

因此,我的问题是:

  • 我应该如何处理这个问题

  • 如果输出流是最好的方式,那么实现它的理想方式是什么


  • 非常感谢您的指导,请告诉我是否可以让问题更清楚,或者是否需要更多细节来回答问题。

    我不明白如何做:将图像提供给前端/客户端代码。事实证明,这非常简单

        @GET @javax.ws.rs.Path("/file/{fileId}")
        public Response getFile(@Context SecurityContext sc, @PathParam("id") long topicId, @PathParam("fileId") long fileId) {
    
        TopicFile tFile = topicAccessor.getFile(fileId);
    
        String fileLocation = "/server/uploads/" + tFile.getChecksum();
    
        File file = new File(fileLocation);
    
        return Response.ok(file, tFile.getType()).build();
    
    }
    
    在这里,TopicFile保存数据库中文件的元数据,这些文件被命名为它们的校验和


    所以基本上我的问题的解决办法就是回复。我之前没有想到这一点,因为我“继承”了这段代码,我相信前面的人有上帝的理由不使用响应类。

    @Romski,我认为这不太一样,但如果是,你能解释一下吗?主要区别在于,映像是从磁盘读取的,而不是从服务器/数据库读取的。映像来自何处并不重要,因为内容是相同的。要将映像提供给客户机,您需要某种形式的服务器技术,如servlet。