将图像从数据库中单独发送到客户端,然后通过 src 标签获取它是一种好方法吗?

Is it a good approach to send image separately from database to the client and then fetch it by src tag?

我正在处理需要在 browser.I 上显示图像和文本的项目,已将图像存储在数据库中的 blob 字段中。我正在从数据库中提取 blob 图像并将其存储在字节字段中。然后使用 fileoutputStream 将图像存储在 webcontent 文件夹中。为了获取图像,我将图像的 url 提供给 src 标签。

DAO class 的代码是

          while (rs.next()) 
            {
                Profile = new UserProfilePojo();
                Profile.setImage1(rs.getBlob(14));
                list.add(Profile);
             }
           rs.close();  

用 pojo class 编写的代码是

       public byte[] getImage()
        {
            return barr;
        }

        public void setImage(Blob image1)
        {
             try 
             {
                this.barr =image1.getBytes(1,(int)image1.length());                   
                byte[] thumbbarr=resizeImageAsJPG(barr,200);
                FileOutputStream fout=new FileOutputStream("E:\my work\redirecttest\WebContent\"+idm+fname+".jpeg");             
                fout.write(thumbbarr);
                fout.close();

             }
             catch(NullPointerException | SQLException | IOException n)
             {
                n.printStackTrace(); 
             }

在jsp页面上写成

          <img src="${Profile[0].id}${Profile[0].fname}imp.jpeg">

虽然我能够获取图像,但我必须在页面加载后刷新 webcontent 文件夹,然后刷新页面才能显示图像。

我只是想问一下,当项目上传到远程服务器时,我能运行吗?如果是这样,那么文件输出流的位置应该是什么。如果它不起作用,请给我一些建议,让我在浏览器上同时显示数据库中的图像和数据。

谢谢

  • 您可以为获取数据和图像编写两个单独的调用
  • 将这两个调用设为异步
  • 它解决了你的问题,数据和图像将同时加载。