我在显示我的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();
答案 0 :(得分:0)
我发现了问题,我在找错了地方。 但也许很高兴知道这是一个正确的解决方案。