先来一段废话
今天刚弄好文件上传,就又想起来了在前台显示图片的问题,百度了很久很久东西。
正题开始
先看controller
@RequestMapping("/readfile.do")
public void doReadFile(HttpServletRequest request, HttpServletResponse response){
try {
//这里只是为了测试,所以把文件地址写死了
FileInputStream pic = new FileInputStream("D:\\pic" + "\\1.jpg");
int i = pic.available();
byte[] date = new byte[i];
pic.read(date);
pic.close();
//这里要有这个设置,否则会报错
response.setContentType("img/*");
response.setCharacterEncoding("utf-8");
ServletOutputStream out=response.getOutputStream();
out.write(date);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
JSP
<a href="${pageContext.request.contextPath }/readfile.do">获取图片</a>
写成上面这个样子的话,点击链接,会把照片下载下来,而且文件名是readfile.do。
如果能下载下来的话,已经是成功了,但是剩下的一点点我花了三四个小时才弄好。
我想要的效果是吧照片显示在页面上,但是但这里只能下载,不知道是因为太简单了还是怎么样,百度出来的那么多结果都不能解决,最后,还是找到了一个。
<img src="${pageContext.request.contextPath }/readfile.do" >
写成上面这个样子就行了,用imp标签直接访问后台。
上传文件的时候就是因为打错了一个字母,显示个照片又是因为不会这么用,两个一下就花了一天,mdzz,真鸡儿菜。