2016-10-05 8 views
1

blob pngファイルの表示に問題があります。Webページにjava格納されたblob pngファイルを表示する

私はJavaプロジェクトでテストケースを実行します。テストが失敗した場合は、スクリーンショットを作成します。 環境とポリシーの問題のため、イメージをblobにmysqlデータベースに格納する必要があります。このBLOBファイルをダウンロードした場合は.binファイルですが、名前を.pngに変更すると画像が正しく表示されます。

私のテスト結果が表示されているウェブページにこの画像を表示したいとします。私は私のウェブページ(PHP)にこの画像を表示できませんよ、それはバイナリファイルを示し続けている

echo '<img src="data:image/png;base64,'.base64_encode($row->screenshot).'"/>'; 

:このため は、私はほとんど見つけることを試みました。 私のウェブページでは、私は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

非常に関連している可能性があるので、画像が最初に保存されていることを確認すると便利です。 – RiggsFolly

+0

@RiggsFolly、コードで更新しました。したがって、appiumでテストを実行していますスクリーンショットを作成してmysqlデータベースに保存して、このイメージをPHPを介してWebページに表示したいと思います。ブロブをダウンロードすると、.binファイルになります。名前を.pngに変更すると、イメージが正常に動作し、完成します。しかし、私はそれをウェブページに表示したいときは、画像はすべての種類の特殊文字で表示されます。 –

+0

BLOBからバイナリイメージデータをコピーし、イメージが正しく表示されるかどうかを確認するために、無料のBASE64エンコードおよび表示サービスを使用しましたか? .. – DTH

答えて

0

私は私が間違った場所で探していた、問題を発見しました。 これは正しい解決方法であることを知っておくとよいでしょう。

関連する問題