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

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

浏览器异步加载服务器端的图片的相关文章

iOS网络编程(三) 异步加载及缓存图片----&gt;SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

Android图片异步加载之Android-Universal-Image-Loader类库的使用

Android开发中我们会经常遇到图片过多或操作不当造成Out of Memory异常,有时虽然是解决了这个问题但却会影响程序的运行效率,例如:当用户在快速滑动滚动条的过程中,我们程序在仍在艰难的加载服务器端的图片,这样给用户造成了极不好的体验.其实网络上关于图片的异步加载和缓存的讲解很多,但是其实,写一个这方面的程序还是比较麻烦的,要考虑多线程,缓存,内存溢出等很多方面,针对这一广大开发者都会遇到的问题,一些牛人们已经帮我们解决了这一问题,今天我为大家介绍一款很流行的开源类库,可以很很好的解决

Android新浪微博客户端(七)——ListView中的图片异步加载、缓存

原文出自:方杰|http://fangjie.sinaapp.com/?p=193转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.ListView的图片异步加载 我们都知道对每一个Weibo Item都有用户头像,而且每一条微博还可能带有图片.如果在加载列表的同时加载图片,这样有几个缺点,第一很费事,界面卡住,用户体验很不

Android图片异步加载框架Universal Image Loader的源码分析

项目地址:https://github.com/nostra13/android-universal-image-loader 1. 功能介绍 1.1 Android Universal Image Loader Android Universal Image Loader 是一个强大的.可高度定制的图片缓存,本文简称为UIL. 简单的说 UIL 就做了一件事--获取图片并显示在相应的控件上. 1.2 基本使用 1.2.1 初始化 添加完依赖后在Application或Activity中初始化I

【Android】纯代码创建页面布局(含异步加载图片)

开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 Fragment 中,采用 ScrollView + LinearLayout 实现. 1 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http:/

Universal Image Loader_图片异步加载

Universal Image Loader 是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示.所以,如果你的程序里需要这个功能的话,那么不妨试试它.他本来是基于Fedor Vlasov's project 项目的,Universal Image Loader在此基础上做了很多修改. 下面是Universal Image Loader官方的说明文档: 开发安卓应用的过程中往往与遇到需要显示网络图片的情形.其实,在手机设备有限的内存空间和处理能力限制下,写

javascript实现js脚本的的异步加载

javascript实现js脚本的的异步加载,和图片的异步加载稍有不同,script的异步加载需要借助dom,因此有了局限性 <html> <head> <meta charset="utf-8" /> <title>Javascript</title> <meta http-equiv="X-UA-Compatible" content="IE=7"> </head&

JSON、异步加载、时间线

JSON(其实他就是一个对象,但是和对象唯一不同的地方在与,我们常常在对象里给属性名不加双引号,但是,json必须给属性名加双引号) json是一种传输数据的格式 对象(属性名加不加双引号都行) var ob = { name:"yang", age:25; height:123 } json(属性名必须加双引号) var ob = { "name":"yang", "age":25; "height":1

[原创]cocos2dx加载网络图片&amp;异步加载图片

[动机] 之前看到一款卡牌游戏,当你要看全屏高清卡牌的时候,游戏会单独从网络上下载,本地只存了非高清的,这样可以省点包大小,所以我萌生了实现一个读取网络图片的类. [联想] 之前浏览网页的时候经常看到一张图片渐进(由模糊变清晰)的显示,如果在游戏中,诸如像显示高清卡牌的时候,使用有这种方式去显示一张图片,这样的体验应该会稍微好些 [相关知识] png interlaced:png图片在导出的时候是可以选择 interlaced (Adam7)的,这样的存储的png在网页上显示会渐进显示, 这种i