gpt4 book ai didi

java - 如何从数据库中查看JSP页面中的多个图像?

转载 作者:行者123 更新时间:2023-12-01 11:21:15 25 4
gpt4 key购买 nike

我在尝试从数据库获取图像然后在 JSP 页面中显示它们时遇到问题:

ImageAction:

public class ImageAction {

private byte[] itemImage;

public byte[] getItemImage() {
return itemImage;
}

public void setItemImage(byte[] itemImage) {
this.itemImage = itemImage;
}

public void execute() throws Exception{
try {
HttpServletResponse response = ServletActionContext.getResponse();
response.reset();
response.setContentType("multipart/form-data");
byte[] imgData =(byte[])ServletActionContext.getRequest().getSession()
.getAttribute("imageData");
System.out.println("imgData :: "+imgData);
itemImage = imgData;
ServletActionContext.getRequest().getSession().removeAttribute("imageData") ;
OutputStream out = response.getOutputStream();
out.write(itemImage);
out.flush();
out.close();

} catch (Exception e) {
System.out.println("error :: ");
e.printStackTrace();
}
// return "success";
}
}

JSP:

<tr >
<td> <%= map.get(mapKey) %> </td>
<td colspan="1" >
<img src="<s:url value="ImageAction" />" width="115" border="0" />
</td>
</tr>

最佳答案

您在 JSP 页面上收到的内容将是原始的 byte[],您需要对其进行一些处理,请检查以下内容:

<a src="" id="imageSrc"/>

一个简单的anchor标签来显示图像。

以下代码会将原始 byte[] 转换为其等效的 Base64 字符串,即对于显示图像至关重要。

<%
byte data[]=request.getParameter(itemImage); //let itemImage for instance hold your data
String encodedData=Base64.encodeBytes(data);
%>

现在您的 JSP 页面上需要一个小实用程序来设置 base64 数据

<script>
function imageBaseSixtyFourProcessor(baseSixtyFour){
var img = new Image();
img.src='';
var imageUrl='data:image/gif;base64,'+baseSixtyFour;
$('#imageSrc').attr('src',imageUrl);
img.src = imageUrl;
}
}
</script>

调用上面的函数:

<script>
imageBaseSixtyFourProcessor(<%encodedData%>);
</script>

注意:在我的例子中,我显示的是GIF文件,您可以根据您的要求更改它。

同样,您可以以相同的方式显示多个图像。

关于java - 如何从数据库中查看JSP页面中的多个图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31204458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com