java实现上传,并显示的问题
上传成功了,数据库是blob类型的,点击一下就直接可以看到上传的图片,问题是现在如何把他显示到页面上呢,
页面上有这个<img src="<%=path%>/users/getImage.action id=${li.user_id}" />
查看页面的时候它会直接进人Action查询用户ID所对应的头像图片,
我用的框架是struts2+ibatis+spring
数据库里保存的是这样子的:(Binary/Image)????这是什么?
Action
public String getImage() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
int id = Integer.parseInt(request.getParameter("id")); //得到页面ID
userInfoDto users = new userInfoDto();
users.setUser_id(id);
list = getBean().selectAllUser(users); //调用实现方法
for (int i = 0; i < list.size(); i++) {
userInfoDto u = list.get(i); // 得到实体对象
byte[] img = u.getUser_pic_path(); //得到数据库里保存的图片
response.setContentType("image/jpeg");
ServletOutputStream os = response.getOutputStream();
if (img != null && img.length != 0) {
for (int j = 0; j < img.length; j++) {
os.write(img[i]);
}
os.flush();
}
}
return NONE;
}
------解决方案--------------------
前面这个是提示你是图片吧,为啥你说它不是二进制流?
稳妥起见的话,可以检查下上传图片保存到数据库的代码。