【问题标题】:how to retrive image and display it on div from database如何从数据库中检索图像并将其显示在 div 上
【发布时间】:2014-06-15 06:33:30
【问题描述】:

我不熟悉内容的 blob 数据转换。我正在阅读电子邮件并将正文类型保存为 BLOB 的数据库,如果我们将图像嵌入到电子邮件中,即使那些正在保存到其中。但问题是检索并显示给用户。图像重新创建没有发生,它说图像路径失败。

图像标签中的 src 是这样的。

cid:image001.png@01CF630F.005FA080

请帮忙提供合适的java代码,它将形成图像,我们可以显示到分区中。

提前致谢。

【问题讨论】:

标签: java sql email blob


【解决方案1】:

我已经解决了同样的问题,方法是制作一个返回图像字节 [] 的 sevlet。并在 img src 标签中调用这个 servlet。

示例: 此方法将为您提供任何文件的 byte[],并且方法位于 Utilities 类中

public static byte[] getFileData ( String fileName ){
    File f = new File(fileName);
    byte data [] = new byte[ (int) f.length() ];

    try {
        FileInputStream fis = new FileInputStream(f);
        fis.read(data);
        fis.close();
        return data;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}**

我已经从 servlet 的 doGet 调用了这个方法,如下所示:

final String imageName = request.getParameter("imageName");    
byte[] imageData = Utilities.getFileData( ROOT_DIR + imageName );
response.getOutputStream().write(imageData);

在上面的代码中,ROOT_DIR 也被定义为 C:\Temp\FormData\Images\

我的 div 是这样的:

<div>
<img src='http://localhost:9080/LoadImage?imageName=one.png' />
</div>

【讨论】:

  • 我已经完整阅读了电子邮件并将其保存到数据库中,它是完整的 html 结构,没有存储任何类似路径和所有内容的内容。如何将其以正确的格式转换回来以显示图像
  • 您的电子邮件可以包含多个图像吗?
  • 可能是用户依赖,图像是内联的,我的意思是没有附加
  • 显示表结构,您存储这些图像的位置。如果您的邮件只包含一张图片,我知道哪种方法可行
  • 我只是将作为 html 结构的数据转换为 blob(字节)并存储到 DB 中,n 因为图像也被转换并保存了,所以我不知道如何将其改回来,但是电子邮件内容显示正确,准备好的src是这样的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 2013-12-24
相关资源
最近更新 更多