用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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
jQuery实现链接的title快速出现的方法
Feb 20 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
js实现div色块拖动录制
Jan 16 Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP中用hash实现的数组
2011/07/17 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
python中from module import * 的一个坑
2014/07/20 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
初步解析Python中的yield函数的用法
2015/04/03 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
python 日志 logging模块详细解析
2020/03/31 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
小学生我的梦想演讲稿
2014/08/21 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
教师年度考核个人总结
2015/02/12 职场文书
责任书范本大全
2015/05/11 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书