用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 相关文章推荐
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
调试Node.JS的辅助工具(NodeWatcher)
Jan 04 Javascript
js修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
javascript中match函数的用法小结
Feb 08 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
JavaScript引用类型Function实例详解
Aug 09 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
IStream与TStream之间的相互转换
2008/08/01 PHP
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
Django发送html邮件的方法
2015/05/26 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
pytest中文文档之编写断言
2019/09/12 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
质检部部长职责
2013/12/16 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
团队会宣传标语
2014/10/09 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python