用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 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
给Function做的OOP扩展
May 07 Javascript
JavaScript 学习笔记(十三)Dom创建表格
Jan 21 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
vue使用drag与drop实现拖拽的示例代码
Sep 07 Javascript
js的对象与函数详解
Jan 21 Javascript
实现一个 Vue 吸顶锚点组件方法
Jul 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
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python 中Pickle库的使用详解
2018/02/24 Python
详解python中*号的用法
2019/10/21 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
全球性的在线商店:Vogca
2019/05/10 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
教师个人剖析材料
2014/02/05 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2014年建筑工作总结
2014/11/26 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang