用XMLDOM和ADODB.Stream实现base64编码解码实现代码


Posted in Javascript onNovember 28, 2010
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<title> 用 XMLDOM 和 ADODB.Stream 实现base64编码解码 </title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<style type="text/css" title=""> 
#textarea1,#textarea3,#textarea5 { background-color: #EEEEEE; } 
</style> 
</head> <body> 
<h3>用 XMLDOM 和 ADODB.Stream 实现base64编码解码</h3> 
<h5>By: CuiXiPing(无心)</h5> 
<h4>1.对文件的base64编码</h4> 
<input type=file name="file1" id="file1" size="50"> 
<input type="button" value="base64编码" onclick="if(!file1.value){alert('请选择文件')}else{textarea1.value=Base64EncodeFile(file1.value)}"> 
<br> 
<textarea id="textarea1" rows="6" cols="80" readOnly></textarea> 
<h4>2.对文本的base64编码</h4> 
<input type="button" value="base64编码" onclick="textarea3.value=Base64EncodeText(textarea2.value)"> 
<br> 
<textarea id="textarea2" rows="4" cols="40">坚决抵制日货</textarea> 
<textarea id="textarea3" rows="4" cols="40" readOnly></textarea> 
<h4>3.对文本的base64解码</h4> 
<input type="button" value="base64解码" onclick="textarea5.value=Base64DecodeText(textarea4.value)"> 
<br> 
<textarea id="textarea4" rows="4" cols="40">vOG+9rXW1sbI1bv1</textarea> 
<textarea id="textarea5" rows="4" cols="40" readOnly></textarea> 
<script language="javaScript"> 
<!-- 
function Base64EncodeFile(fileSpec){ 
var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); 
var ado_stream = new ActiveXObject("ADODB.Stream"); 
var tmpNode = xml_dom.createElement("tmpNode"); 
tmpNode.dataType = "bin.base64"; 
ado_stream.Type = 1; // 1=adTypeBinary 
if(ado_stream.state==0){ // 0=adStateClosed 1=adStateOpen 
ado_stream.Open(); 
} 
ado_stream.LoadFromFile(fileSpec); 
tmpNode.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll 
ado_stream.Close(); 
return tmpNode.text; 
} 
function Base64EncodeText(TextStr){ 
var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); 
var ado_stream = new ActiveXObject("ADODB.Stream"); 
var tmpNode = xml_dom.createElement("tmpNode"); 
tmpNode.dataType = "bin.base64"; 
ado_stream.Charset = "gb2312"; 
ado_stream.Type = 2; // 1=adTypeBinary 2=adTypeText 
if(ado_stream.state==0){ // 0=adStateClosed 1=adStateOpen 
ado_stream.Open(); 
} 
ado_stream.WriteText(TextStr); 
ado_stream.Position = 0; 
ado_stream.Type = 1; // 1=adTypeBinary 2=adTypeText 
tmpNode.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll 
ado_stream.Close(); 
return tmpNode.text; 
} 
function Base64DecodeText(Base64Str){ 
var xml_dom = new ActiveXObject("MSXML2.DOMDocument"); 
var ado_stream = new ActiveXObject("ADODB.Stream"); 
var tmpNode = xml_dom.createElement("tmpNode"); 
tmpNode.dataType = "bin.base64"; 
tmpNode.text = Base64Str; 
ado_stream.Charset = "gb2312"; 
ado_stream.Type = 1; // 1=adTypeBinary 2=adTypeText 
ado_stream.Open(); 
ado_stream.Write(tmpNode.nodeTypedValue); 
ado_stream.Position = 0; 
ado_stream.Type = 2; // 1=adTypeBinary 2=adTypeText 
var str = ado_stream.ReadText(-1); // -1=adReadAll 
ado_stream.Close(); 
return str; 
} 
//--> 
</script> 
</body> 
</html>
Javascript 相关文章推荐
jquery isType() 类型判断代码
Feb 14 Javascript
js中数组(Array)的排序(sort)注意事项说明
Jan 24 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
jsPDF导出pdf示例
May 02 Javascript
jquery手风琴特效插件
Feb 04 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
Nov 30 Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 Javascript
vue实现循环滚动列表
Jun 30 Javascript
xss文件页面内容读取(解决)
Nov 28 #Javascript
用js来解决ajax读取页面乱码
Nov 28 #Javascript
window.name代替cookie的实现代码
Nov 28 #Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 #Javascript
一个网马的tips实现分析
Nov 28 #Javascript
JQUBAR1.1 jQuery 柱状图插件发布
Nov 28 #Javascript
为jQuery增加join方法的实现代码
Nov 28 #Javascript
You might like
PHP开发框架总结收藏
2008/04/24 PHP
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Python yield 使用浅析
2015/05/28 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
经济管理专业自荐信
2013/12/30 职场文书
业务总经理岗位职责
2014/02/03 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
质量保证书范本
2014/04/29 职场文书
建议书的格式
2014/05/12 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
欠条格式范本
2015/07/03 职场文书
新教师教学工作总结
2015/08/12 职场文书
部门主管竞聘书
2015/09/15 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
Python os和os.path模块详情
2022/04/02 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers