现在手上的项目,附件都是以二进制的形式直接保存在数据库,今天需要把一个表里面的附件(图片)取出来直接显示到页面上。在网上找到了方法,自己也在此总结一下。
技术:struts1+jsp。
下面是实现。
jsp关键代码:
<img src="recipeAction.do?method=showRecipePic&recipeId=${recipe.recipeId }">
<!-现在才知道img标签可以这样用,惭愧-->
action对应方法:
public void showRecipePic(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String recipeId = request.getParameter("recipeId");
byte[] b = this.recipeService.getRecipeById(Integer.parseInt(recipeId)).getRecipePic();
//以上代码获得数据,下面才是关键
response.setContentType( "image/jpeg ");
response.setContentLength(b.length);
try {
ServletOutputStream ss = response.getOutputStream();
ss.write(b);
ss.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
技术:struts1+jsp。
下面是实现。
jsp关键代码:
<img src="recipeAction.do?method=showRecipePic&recipeId=${recipe.recipeId }">
<!-现在才知道img标签可以这样用,惭愧-->
action对应方法:
public void showRecipePic(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String recipeId = request.getParameter("recipeId");
byte[] b = this.recipeService.getRecipeById(Integer.parseInt(recipeId)).getRecipePic();
//以上代码获得数据,下面才是关键
response.setContentType( "image/jpeg ");
response.setContentLength(b.length);
try {
ServletOutputStream ss = response.getOutputStream();
ss.write(b);
ss.flush();
} catch (IOException e) {
e.printStackTrace();
}
}