用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 相关文章推荐
JS获取select-option-text_value的方法
Dec 26 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
three.js 入门案例详解
Jan 23 Javascript
浅谈Redux中间件的实践
Jul 27 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图像处理函数大全(推荐收藏)
2013/07/11 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
php mysql 封装类实例代码
2016/09/18 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
javascript history对象详解
2017/02/09 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python日志模块logging简介
2015/04/13 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
python单元测试unittest实例详解
2015/05/11 Python
python的sorted用法详解
2019/06/25 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
搞笑获奖感言
2014/01/30 职场文书
意向书范文
2014/03/31 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
学校文明单位申报材料
2014/05/06 职场文书
化学专业自荐信
2014/05/28 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技