我在客户端上编写了一个小型Java应用程序,该应用程序将BLOB图像插入到IBM i的表中。当查询表时,我看到该列已被填充。 如何将BLOB数据显示为图像以确认数据已被保存 书写正确吗?
在Java应用程序中,我将图像作为PNG文件写入Windows 7文件夹中,已确认可以使用Window Photo Viewer进行查看。然后,将相同的图像插入V7R3 IBM i上的表中。
Blob blob = conn.createBlob();
try {
os = new ByteArrayOutputStream();
ObjectOutputStream oos;
oos = new ObjectOutputStream(blob.setBinaryStream(1));
oos.writeObject(outputfile);
oos.close();
// Write the image as a BLOB to prfruncap
queryStr = "INSERT INTO prfdta.prfruncap (rcrun, rcseq, rcimage)"
+ " VALUES(?,?,?)";
pstmt1 = conn.prepareStatement(queryStr);
pstmt1.setInt(1,run);
pstmt1.setInt(2, sequence);
pstmt1.setBlob(3, blob);
pstmt1.executeUpdate();
} catch (SQLException seRs) {
seRs.printStackTrace();
throw seRs;
} catch (IOException e) {
e.printStackTrace();
}
查询数据时,我确实看到该列确实包含数据。我希望可以将数据粘贴到在线转换器中,例如(https://codebeautify.org/base64-to-image-converter),但无法显示图像。 是否可以将BLOB数据视为图像以确认其正确写入?
答案 0 :(得分:2)
您没有将映像存储为base64,而是将其存储为二进制文件,因此base64-to-image转换器将无济于事。
将字节写回到PC或IFS上的流文件中,并使用照片查看器将其打开。