java读取本地的图片,并在jsp中显示。主要用于实现的图片预览功能。
没有太详细的整理,不过参照下面的方法就可以实现了~~
java:
public void showPicture() throws Exception
{
String picId = getRequest().getParameter("picId");
String pic_path = pointCardApplyManager.findPicturePath(picId);
System.out.println(pic_path);
FileInputStream is = new FileInputStream(pic_path);
int i = is.available(); // 得到文件大小
byte data[] = new byte[i];
is.read(data); // 读数据
is.close();
response.setContentType("image/*"); // 设置返回的文件类型
OutputStream toClient = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
toClient.write(data); // 输出数据
toClient.close();
}
jsp:
<div align="left">
<img hspace="2" vspace="2" border="1" align="middle" height="50" width="50"
src="${ctx}/showPicture.action?picId=<s:property value='#image.resourceid'/>" οnclick="selectForward('<s:property value='#image.resourceid'/>');">
</div>
javscript:
function selectForward(picId){
var objForm = document.applyForm;
var url="${ctx}/showPicture.action?picId="+picId;
var openStyle="dialogHeight:500px; dialogWidth:500px; status:no; help:no; scroll:auto";
var result = window.showModalDialog(url,window.document,openStyle);
return true;
}
显示效果二:
jsp:
<div align="left" id="sam<s:property value='#sts.count'/>">
<img hspace="0" vspace="0" border="0" align="middle" height="50" width="50" οnmοuseοver="displayDiv1('lag<s:property value='#sts.count'/>');displayDiv2('sam<s:property value='#sts.count'/>')"
src="${ctx}/showPicture.action?picId=<s:property value='#image.resourceid'/>">
</div>
<div align="left" id="lag<s:property value='#sts.count'/>" style="display:none">
<img hspace="0" vspace="0" border="0" align="middle" height="600" width="800" οnmοuseοut="displayDiv1('sam<s:property value='#sts.count'/>');displayDiv2('lag<s:property value='#sts.count'/>')"
src="${ctx}/showPicture.action?picId=<s:property value='#image.resourceid'/>">
</div>
javascript:
function displayDiv1(name) {
document.getElementById(name).style.display="block";
}
function displayDiv2(name) {
document.getElementById(name).style.display="none";
}