byte[] bytes = System.Convert.FromBase64String(base64Str)
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes))
{
return System.Drawing.Image.FromStream(ms)
}
ajax只支持如下字符串(String)格式(dataType):
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
"script": 返回纯文本 JavaScript
代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP
格式。使用 JSONP
形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
不能也必要用ajax技术显示图像。
img预加载示例:
function loadImage(url, callback) {var img = new Image() //创建一个Image对象,实现图片的预下载
img.src = url
if(img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
callback.call(img)
return // 直接返回,不用再处理onload事件
}
img.onload = function () { //图片下载完毕时异步调用callback函数。
callback.call(img)//将回调函数的this替换为Image对象
}
}
1. 发起请求页面 //ImageClient.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>ImageRequest</TITLE>
</HEAD>
<BODY>
<img src="http://127.0.0.1:8080/ImageServer.jsp"/>
</BODY>
</HTML>
2. 接受请求并返回结果页 //ImageServer.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.*"%>
<%
System.out.print("enter...")
String filePath = "C:/Program Files/Tomcat/Tomcat-7.0.4/webapps/ROOT/ericsson.gif"
File file = new File(filePath)
InputStream fis
try {
fis = new FileInputStream(file)
byte[] buf=new byte[(int)fis.available()]
fis.read(buf)
response.setContentType("application/binarycharset=ISO8859_1")
OutputStream outs = response.getOutputStream()
outs.write(buf)
outs.flush()
out.clear()
out = pageContext.pushBody()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
%>
3. 测试结果