【问题标题】:Show java stored blob png files on webpage在网页上显示 java 存储的 blob png 文件
【发布时间】:2017-02-14 00:48:28
【问题描述】:

我在显示我的 blob png 文件时遇到问题。

所以我在 java 项目中运行测试用例,如果测试失败,我会截屏。 由于环境和政策问题,我必须将图像存储在 mysql 数据库中的 blob 中。如果我下载这个 blob 文件,它是一个 .bin 文件,但如果我将它重命名为 .png,图像就会正确显示。

我想在显示我的测试结果的网页中显示此图像。 为此,我尝试了我发现最多的东西:

echo '<img src="data:image/png;base64,'.base64_encode( $row->screenshot ).'"/>';

我无法在我的网页 (php) 上显示此图像,它继续显示二进制文件。 对于我的网页,我使用了 codeigniter。

所以,我在java项目中的代码是:

File srcFiler = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); //Appium screenshot
InputStream Screenshot = new ByteArrayInputStream(FileUtils.readFileToByteArray(srcFiler));
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, user, password);

String query = "insert into screenshots (screenshotimage)"
                + "values (?)";

PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setBlob(1, Screenshot);
preparedStmt.execute();
preparedStmt.close();
conn.close();

【问题讨论】:

  • 好吧,首先看看图像是如何存储的可能很有用,因为这可能非常相关
  • @RiggsFolly ,我已经更新了代码,所以我在 appium 上运行测试,但它失败了,它截取屏幕截图并将其保存在 mysql 数据库中,我想在网页通过php。如果我下载 blob,它是一个 .bin 文件,当我将其重命名为 .png 时,图像可以正常工作并且是完整的。但是当我想在网页中显示时,图像会显示各种特殊字符。
  • 您是否尝试从您的 BLOB 复制二进制图像数据并使用互联网免费的 BASE64 编码和显示服务之一来查看图像是否可以在那里正确显示? ..

标签: java php mysql codeigniter blob


【解决方案1】:

我找到了问题,我找错地方了。 但也许很高兴知道这是一个正确的解决方案。

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 2017-01-06
    • 2016-04-28
    • 2017-05-19
    • 2019-12-25
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2014-01-23
    相关资源
    最近更新 更多