用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 UI皮肤定制
Jul 27 Javascript
JavaScript Event学习第三章 早期的事件处理程序
Feb 07 Javascript
根据出生日期自动取得星座的js代码
Jul 20 Javascript
kmock javascript 单元测试代码
Feb 06 Javascript
JS实现根据出生年月计算年龄
Jan 10 Javascript
jquery 使用简明教程
Mar 05 Javascript
js中直接声明一个对象的方法
Aug 10 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
基于jQuery实现文字打印动态效果
Apr 21 jQuery
JS分页的实现(同步与异步)
Sep 16 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
vue项目前端知识点整理【收藏】
May 13 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
PHP面向对象编程快速入门
2006/10/09 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
three.js中文文档学习之创建场景
2017/11/20 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
个人生活学习自我评价范文
2013/11/26 职场文书
教师档案管理制度
2014/01/23 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
《风筝》教学反思
2016/02/23 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python