【发布时间】: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