用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 相关文章推荐
javascript知识点收藏
Feb 22 Javascript
JQuery 风格的HTML文本转义
Jul 01 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
Oct 11 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
ES5学习教程之Array对象
Apr 01 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
vux uploader 图片上传组件的安装使用方法
May 15 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
JavaScript对象原型链原理详解
Feb 05 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中数组的分组排序实例
2014/06/01 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
javascript+Canvas实现画板功能
2020/06/23 Javascript
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
不要用强制方法杀掉python线程
2017/02/26 Python
python编程实现归并排序
2017/04/14 Python
python实现彩票系统
2020/06/28 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
傲盾软件面试题
2015/08/17 面试题
中学生打架检讨书
2014/02/10 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
二手房购房意向书范本
2014/04/01 职场文书
学风建设演讲稿
2014/09/12 职场文书
岗位职责范本大全
2015/02/26 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
大学副班长竞选稿
2015/11/21 职场文书
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技