Как отобразить массив, содержащий изображение в формате base64, через тег src?
Как показать массив, содержащий изображение в формате base64 через тег src Я пытаюсь отобразить изображение в формате base64. Когда я вставляю строку base64 как src, она работает нормально. Но это не я пытаюсь сделать. Я хочу отобразить элемент массива, который содержит изображение.
Файл JSP как это:
<img src="" id="popupnidImage"
onmousemove=imageZoom() style="max-height: 500px;" padding-left: 0px;" />
Ajax, как это (этот код также в файле JSP):
$.ajax(
{
url : 'uploadOffierController.jsp?action=getnid&image_id='
+ ref_number + '&imgetype=' + imageType,
contentType : 'application/json',
context : document.body
})
.done(
function(response) {
var repon = response.trim().split(",");
document.getElementById("popupnidImage")
.setAttribute(
'src',
'data:image/jpg;base64,"'
+ repon[0] + '"');
});
action = getnid - это функция Java, которая возвращает изображение base64. Используя этот ответ, я пытаюсь отобразить изображение с помощью элемента массива repon[0]. И функция getnid работает отлично.
вот так вот:
List<AccountHistory> acchistoryDate = new ArrayList<AccountHistory>();
AccountController acc = new AccountController();
String imgDataPath = "";
String query = "SELECT " + tablefieldname + " FROM tablename WHERE fieldname='" + msisdn + "'";
System.out.print(">>****v123****>>" + query);
imgDataPath = getImagePath(query);
System.out.println("imgDataPath : " + imgDataPath);
BufferedImage bImage = ImageIO.read(new File(imgDataPath));//give the path of an image
System.out.println("bImage : " + bImage);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bImage, "jpg", baos);
ImageIO.write(bImage, "png", baos);
baos.flush();
byte[] imageInByteArray = baos.toByteArray();
baos.close();
String b64 = javax.xml.bind.DatatypeConverter.printBase64Binary(imageInByteArray);
String historydate = "SELECT `xxxxx` FROM `xxxx` WHERE `xxx`='" + msisdn
+ "' AND " + xxxxx + " IS NOT NULL";
System.out.println(">>historydate>>" + historydate);
acchistoryDate = acc.gethistoryDetails(historydate);
String nidhis = "";
for (int x = 0; x < acchistoryDate.size(); x++) {
nidhis += acchistoryDate.get(x).getRejectedDate().substring(0, 19) + ",";
}
out.print(b64 + "," + nidhis);