用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 相关文章推荐
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
node.js中的fs.fchmodSync方法使用说明
Dec 16 Javascript
jQuery链使用指南
Jan 20 Javascript
Node.js中的缓冲与流模块详细介绍
Feb 11 Javascript
JavaScript中的Function函数
Aug 27 Javascript
angular基于路由控制ui-router实现系统权限控制
Sep 27 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
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 if 想到的些问题
2008/03/22 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python创建xml的方法
2015/03/10 Python
python中尾递归用法实例详解
2015/04/28 Python
Python 私有函数的实例详解
2017/09/11 Python
python difflib模块示例讲解
2017/09/13 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python向excel中写入数据的方法
2019/05/05 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
vue项目实现分页效果
2021/03/24 Vue.js
技术学校毕业生求职信分享
2013/12/02 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
烟台的海导游词
2015/02/02 职场文书
自荐信格式模板
2015/03/27 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
mysql知识点整理
2021/04/05 MySQL
python 如何做一个识别率百分百的OCR
2021/05/29 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技