用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 相关文章推荐
IE6与IE7中,innerHTML获取param的区别
Mar 15 Javascript
javascript 避免闭包引发的问题
Mar 17 Javascript
导航跟随滚动条置顶移动示例代码
Sep 11 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
js 调用百度分享功能
Feb 27 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
vue-cli3自动消除console.log()的调试信息方式
Oct 21 Javascript
Express 配置HTML页面访问的实现
Nov 01 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
php实现的常见排序算法汇总
2014/09/08 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
PHP6新特性分析
2016/03/03 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python通过future处理并发问题
2017/10/17 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
应届生煤化工求职信
2013/10/21 职场文书
施工工地安全标语
2014/06/07 职场文书
管理标语大全
2014/06/24 职场文书
2014年党员整改措施
2014/10/24 职场文书
地雷战观后感
2015/06/09 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
浅谈python中的多态
2021/06/15 Python
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS