用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 相关文章推荐
Zero Clipboard js+swf实现的复制功能使用方法
Mar 07 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 Javascript
使用JavaScript实现Java的List功能(实例讲解)
Nov 07 Javascript
jquery提交form表单简单示例分享
Mar 03 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
详解vue-cli 接口代理配置
Dec 13 Javascript
JavaScript代理模式原理与用法实例详解
Mar 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
python使用append合并两个数组的方法
2015/04/28 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python创建数字列表的示例
2019/11/28 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
《菜园里》教学反思
2014/04/17 职场文书
单位在职证明书
2014/09/11 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android