前端页面获取本地图片资源的几个办法
最近项目中需要在页面中显示人员照片,但是所有的照片资源在服务器上的另一个本地文件夹下,并不在我们的项目文件夹内,在尝试了几种获取图片资源的方式后最终找到了合适的解决办法,因此做了一个小结,方便以后参考。
1.<img> 标签中的scr直接写入图片资源链接
代码如下:
<img src="img/picture.jpg" alt="User Photo" style="width: 120px; height: 168px" >
这里的src="img/picture.jpg"
可以写相对路径也可以使用绝对路径,但这样使用的前提是图片资源在tomcat/webapps/目录之内,如果图片所在文件夹在webapps之外,无论使用哪种路径都无法访问到。
由于我项目中所有的图片都在本地的一个文件夹下,所以此方法不可用。
2.修改tomcat的server.xml
文件,配置虚拟路径访问本地路径
打开本机的tomcat/conf
文件夹,找到server.xml
文件,打开并编辑,在<Host></Host>
标签内加入一句:
<Context docBase="D:\resource" path="/imgResource" debug="0" reloadable="true"/>
前端代码:
<img src="/imgResource/img/picture.jpg" alt="User Photo" style="width: 120px; height: 168px" >
其中path
是虚拟路径,我们在页面中使用的;docBase
为真实的本地资源路径,将本地路径映射给虚拟路径使用
这样做的话需要修改tomcat的配置,我的项目是部署在docker中的,而且是个老项目,配置文件没人愿意去改,所以也没用这种方法。
3.后台通过IO流的方式将图片传输到页面
页面上图片的src
属性其实就是一个http
请求,后台处理这个请求是输出一张图片到浏览器
java代码:
/**
* IO流传输个人照片到前端
* @Title: showPhoto
*/
public String showPhoto(){