浏览器异步加载服务器端的图片

本文介绍两种在Web应用中加载图片的方法:一是将图片转换为Base64编码,实现在浏览器中动态显示服务器端图片;二是配置Tomcat虚拟路径,使Web项目能加载非项目目录下的图片资源。

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      

转载于:https://www.cnblogs.com/chenhao1990/p/4628957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值