我在显示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();
1条答案
按热度按时间0x6upsns1#
我发现了问题,我找错地方了。但知道这是一个正确的解决方案也许是件好事。