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

本文主要介绍了在SSM框架中如何解决在前端页面显示服务器上上传的图片的问题。经过一番搜索和尝试,作者发现使用JSP的`<img>`标签直接访问后台Controller可以实现图片的正确显示,而之前的问题是由于URL路径错误导致图片被下载而不是显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来一段废话

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

正题开始

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值