jsp 读取图片

//取得上传地址
String imagePath=request.getParameter("image");
System.out.println(imagePath);
//得到站点的绝对地址
String webPath=request.getSession().getServletContext().getRealPath("/ProImage/");
System.out.println(webPath);
//取得上传文件名(包括扩展名)-----start-------
int beginIndex=imagePath.lastIndexOf("\\");
String imageName=imagePath.substring(beginIndex+1);
System.out.println(imageName);
//取得上传文件名-----end-------
//读取图片
FileInputStream fis=new FileInputStream(imagePath);
BufferedInputStream bis=new BufferedInputStream(fis);
DataInputStream dis=new DataInputStream(bis);
int fileLenght=dis.available();
byte [] buffImage=new byte[fileLenght];
dis.read(buffImage);

//上传文件到Web
FileOutputStream fos = new FileOutputStream(webPath+"\\"+imageName);
BufferedOutputStream bos=new BufferedOutputStream(fos);
DataOutputStream dos=new DataOutputStream(bos);
dos.write(buffImage);

fis.close();
fos.close();
System.out.println("JSP上传图片成功!");

哪错了?图片为空??

你想要的是上传图片。
但你写的,完全不是上传功能,上传的图片是保存成 流 的。
只能通过request.getInputStream()获取输入流才可以。但是,这样也不正确,纯JSP上传是很麻烦的,要考虑很多东西。如果你想上传 建议你用commons-fileupload 包 去做
那里封装好了方法,使用方便,具体方法,先去百度吧,不明白再问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-14
String webPath=request.getSession().getServletContext().getRealPath("/ProImage/");
System.out.println(webPath);
//取得上传文件名(包括扩展名)-----start-------
int beginIndex=imagePath.lastIndexOf("\\");
一会用反斜杠“/”,一会又用“\”,你是想做什么,你这样的话你在找路径的时候就不对了!!
第2个回答  2016-01-03
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'/>" onclick="selectForward('<s:property value='#image.resourceid'/>');">
</div>

javascript:

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" onmouseover="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" onmouseout="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";
}