用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 相关文章推荐
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
javascript实现table表格隔行变色的方法
May 13 Javascript
JavaScript中setFullYear()方法的使用详解
Jun 11 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
axios基本入门用法教程
Mar 25 Javascript
js 用于检测类数组对象的函数方法
May 02 Javascript
mongoose中利用populate处理嵌套的方法
May 26 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
Vue SSR 组件加载问题
May 02 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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
JAVA/JSP学习系列之六
2006/10/09 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Python运行DLL文件的方法
2020/01/17 Python
Python中os模块功能与用法详解
2020/02/26 Python
appium+python adb常用命令分享
2020/03/06 Python
python解释器安装教程的方法步骤
2020/07/02 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
Python类型转换的魔术方法详解
2020/12/23 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
餐饮采购员岗位职责
2014/03/15 职场文书
大学生求职信范文
2014/05/24 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
如何写通讯稿
2015/07/22 职场文书
创业计划书之农家乐
2019/10/09 职场文书