1:使用base64访问图片
需求:浏览器中的<img>标签动态更换来自服务器端的图片。
适用场景:不能通过url直接获取到图片的时候。
java后台service访问服务器端本地资源,生成二进制数据,转成base64编码:
BASE64Encoder encoder = new sun.misc.BASE64Encoder(); File file = new File(fileurl); FileInputStream fips = new FileInputStream(file); ByteArrayOutputStream bops = new ByteArrayOutputStream(); int data = -1; try { while((data = inStream.read()) != -1){ bops.write(data); } } catch(Exception e){ return null; } byte[] btImg = bops.toByteArray(); return encoder.encodeBuffer(btImg).trim();
前台js接收上面来自服务器后台的base64编码,设置为img标签的src:
//可以使用ajax接收来自服务器端的base64编码 $("img").attr("src", "data:image/jpeg;base64," + 来自服务器的base64编码);
2:设置tomcat虚拟路径访问图片
原因:由于web项目的html前台需要通过img标签使用url加载图片资源,而通常只能访问项目相对路径下的资源,所以要通过tomcat映射虚拟路径来访问别的磁盘中的资源。
在tomcate安装目录下:\conf\Catalina\localhost中创建一个xml文件(file.xml)。注意:file.xml的名称要与下面的path=""值相同。
<?xml version=‘1.0‘ encoding=‘utf-8‘?> <Context crossContext="true" docBase="C:/xxx" path="\file" reloadable="true"> </Context>
重启tomcat;
访问虚拟目录 http://localhost:8080/file
时间: 2024-12-10 11:55:29