標籤:http java os io 檔案 資料 ar cti
第一步,讀取blob資料,
第二步,將blob資料轉換成byte數組
第三步,將byte資料進行base64加密轉換成字串並回傳
第四步,接收字串
第五步,將img控制項的src設定成"data:image/jpeg;base64,"+接收的字串;
相關代碼:
java:
public String getAccountImg(String alias)
{
String sql = "SELECT imgrawdata FROM wx_account WHERE alias = ?";
PreparedStatement ps = DBUtils.createPreparedStatement(DBUtils.connection, sql);
DBUtils.setString(ps, 1, alias);
ResultSet res = DBUtils.executeQuery(ps);
DBUtils.next(res);
Blob imagerawdata = DBUtils.getBlob(res, "imgrawdata");
byte[] b = blobToBytes(imagerawdata);
return Base64.encode(b);
}
private byte[] blobToBytes(Blob blob) {
BufferedInputStream is = null;
try {
is = new BufferedInputStream(blob.getBinaryStream());
byte[] bytes = new byte[(int) blob.length()];
int len = bytes.length;
int offset = 0;
int read = 0;
while (offset < len && (read = is.read(bytes, offset, len - offset)) >= 0) {
offset += read;
}
return bytes;
} catch (Exception e) {
return null;
} finally {
try {
is.close();
is = null;
} catch (IOException e) {
return null;
}
}
}
~~~~~~~~~~~~~~
js:
var img= xmlhttp.responseText;
alert(img);
document.getElementById("image").src = "data:image/jpeg;base64,"+img;