ssm 在前台页面显示服务器中的图片

先来一段废话

今天刚弄好文件上传,就又想起来了在前台显示图片的问题,百度了很久很久东西。

正题开始

先看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,真鸡儿菜。

猜你喜欢

转载自blog.csdn.net/D_mengxin/article/details/84728711
ssm