比如代码:
var s = new ActiveXObject("ADODB.Stream");
s.Open();
s.Type = 1;
s.LoadFromFile("e:\\1.jpg");
var ch = s.Read();
s.Close();
alert(typeof(ch));// 弹出unknown
for(var i in ch){
alert(i);//没有弹出任何属性信息
}
alert(ch[0]);//报错:0为空或不是对象请问要如何操作代码里的这个ch,才能得到二进制数据呢?
我通过ie8的开发人员工具,可以看得到ch是一个数组,可是如何在js里得到这个数组呢?使用VBScript操作的代码就不要帖出来了,谢谢大家
var s = new ActiveXObject("ADODB.Stream");
s.Open();
s.Type = 1;
s.LoadFromFile("e:\\1.jpg");
var ch = s.Read();
s.Close();
alert(typeof(ch));// 弹出unknown
for(var i in ch){
alert(i);//没有弹出任何属性信息
}
alert(ch[0]);//报错:0为空或不是对象请问要如何操作代码里的这个ch,才能得到二进制数据呢?
我通过ie8的开发人员工具,可以看得到ch是一个数组,可是如何在js里得到这个数组呢?使用VBScript操作的代码就不要帖出来了,谢谢大家
虽然是非标准的方法标准方法在IE9,FireFox3.6,Chrome5以上有效
引入了FileReader类
但是还是只提供了有限的方法,不提供直接读取路径
必须要依靠html file控间。具体可以参照
http://www.cnbeta.com/articles/98671.htm
s.Open();
s.Type = 1;
s.LoadFromFile("e:\\1.jpg");
var ch = s.Read();
s.Close();
alert(typeof(ch));// 弹出unknown
ch = eval(ch);//试试看
for(var i in ch){
alert(i);//没有弹出任何属性信息
}
alert(ch[0]);//报错:0为空或不是对象
比如jpg文件
而且在IE8的开发人员工具里也能看到内容,就是没办法读取出来另外,我研究这个的目的,就是想用js读取文件,并通过提交byte数组,来实现上传文件的目的呵呵
var s = new ActiveXObject("ADODB.Stream");
s.Open();
s.Type = 1;
s.LoadFromFile("c:\\temp\\temp.jpg");
var ch = s.Read();
s.Close();var buffer = [];with (new ActiveXObject("MSXML2.DOMDocument").createElement("node")) {
//dataType = "bin.base64";
dataType = "bin.hex";
nodeTypedValue = ch;
var hex = text;
hex.replace(/../g, function($0) {
buffer.push(parseInt($0, 16));
});
}alert(buffer.join("-"));
s.Open();
s.Type = 1;
s.LoadFromFile("c:\\temp\\temp.jpg");
var ch = s.Read();
s.Close();var buffer = [];with (new ActiveXObject("MSXML2.DOMDocument").createElement("node")) {
//dataType = "bin.base64";
dataType = "bin.hex";
nodeTypedValue = ch;
var hex = text;
hex.replace(/../g, function($0) {
buffer.push(parseInt($0, 16));
});
}alert(buffer.join("-"));
为什么DOMDocument可以读取?