C# 为什么我可以使用FileSystemObjects来读取和写入客户端二进制文件,而不能读取和发送到服务器?
我以以下方式创建了一个二进制文件(以确保所有可能的字节值都在二进制文件中): 在IE中的javascript中,使用C# 为什么我可以使用FileSystemObjects来读取和写入客户端二进制文件,而不能读取和发送到服务器?,c#,javascript,vbscript,binary-data,filesystemobject,C#,Javascript,Vbscript,Binary Data,Filesystemobject,我以以下方式创建了一个二进制文件(以确保所有可能的字节值都在二进制文件中): 在IE中的javascript中,使用文件系统对象时,复制文件(读取文件,然后将其写回)工作正常: var fso = new ActiveXObject("Scripting.FileSystemObject"); var from = fso.OpenTextFile(fileToRead, 1, 0); // read, ASCII (-1 for unicode) var to = fso.CreateText
文件系统对象时,复制文件(读取文件,然后将其写回)工作正常:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var from = fso.OpenTextFile(fileToRead, 1, 0); // read, ASCII (-1 for unicode)
var to = fso.CreateTextFile(fileToWriteTo, true, false);
while (!from.AtEndOfStream) {
to.Write(from.Read(1));
}
from.Close();
to.Close();
当我读取输出的二进制文件时,我得到00000000000000000010000010。。。等等
但尝试将其读入javascript似乎会导致读取失败:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var from = fso.OpenTextFile(fileToRead, 1, 0);
var test = [];
while (!from.AtEndOfStream) {
test.push(0xff & from.Read(1)); // make it a byte.
}
from.Close();
这导致测试在它的数组中有一堆0,和一些其他非零项,但大部分只有0
有人能解释一下为什么它对其中一个有效而对另一个无效吗?我需要做什么才能将值转换成javascript
顺便问一下,:首先,您知道最终数组的长度是否与文件的长度相同吗
在不同的操作中尝试阅读和“推送”,如:
...
Test2 = from.Read(1));
// Possibly display value of Test2 as string
test.push(Test2);
...
此外,您还可以对文本数据进行测试,看看是否是文件/数据的二进制性质导致了问题 如何读取并转换为十六进制?
var fso = new ActiveXObject("Scripting.FileSystemObject");
var from = fso.OpenTextFile(fileToRead, 1, 0);
var test = [];
while (!from.AtEndOfStream) {
test.push(0xff & from.Read(1)); // make it a byte.
}
from.Close();
...
Test2 = from.Read(1));
// Possibly display value of Test2 as string
test.push(Test2);
...