用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 相关文章推荐
修复bash漏洞的shell脚本分享
Dec 31 Javascript
JavaScript实现Flash炫光波动特效
May 14 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
JavaScript中apply方法的应用技巧小结
Sep 29 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
vue增删改查的简单操作
Jul 15 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
基python实现多线程网页爬虫
2015/09/06 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
人机交互程序 python实现人机对话
2017/11/14 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
strstr()的简单实现
2013/09/26 面试题
青年文明号复核材料
2014/02/11 职场文书
专家推荐信模板
2014/05/09 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
钱学森电影观后感
2015/06/04 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS