在网页上显示java存储的blob png文件

时间:2016-10-05 14:09:45

标签: java php mysql codeigniter blob

我在显示我的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();

1 个答案:

答案 0 :(得分:0)

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