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

gk7wooem  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(399)

我在显示blob png文件时遇到问题。
所以我在java项目中运行测试用例,如果测试失败,我会截图。由于环境和策略问题,我不得不将图像以blob形式存储在mysql数据库中。如果我下载这个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();
0x6upsns

0x6upsns1#

我发现了问题,我找错地方了。但知道这是一个正确的解决方案也许是件好事。

相关问题