用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.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
JS中作用域和变量提升(hoisting)的深入理解
Oct 31 Javascript
jquery 多个radio的click事件实例
Dec 03 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
vue实现带过渡效果的下拉菜单功能
Feb 19 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 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出错界面
2006/10/09 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
php与js的区别是什么
2013/08/05 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
python3编码问题汇总
2016/09/06 Python
django2 快速安装指南分享
2018/01/05 Python
python异步Web框架sanic的实现
2020/04/27 Python
python相对企业语言优势在哪
2020/06/12 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
营销与策划应届生求职信
2013/11/04 职场文书
医务人员自我评价
2014/01/26 职场文书
家长给孩子的评语
2014/01/30 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
《问银河》教学反思
2014/02/19 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
党委工作总结2015
2015/04/27 职场文书
给校长的建议书范文
2015/09/14 职场文书
用Python提取PDF表格的方法
2021/04/11 Python