| 
 ActiveX FileSystemObject - проблемы с чтением бинарного файла и отправкой Уже голову сломал.  Используется ActiveX FileSystemObject в IE. Нужно прочитать файл на клиенте и передать его содержимое. Всё круто когда обычные файлы. Когда же бинарные файлы то он ерунду мне отправляет (не понимает чтоли некоторые символы и вместо них нули), причем длина пост-запроса каждый раз разная. Скажите, реально ли вообще такое проворачивать - если да то как - если нет то почему??? Умеет ли вообще javascript работать с бинарными данными??? Пользуюсь таким кодом: 
function readFile(input)
{
	var fs = new ActiveXObject("Scripting.FileSystemObject");
	var file = fs.GetFile(input.value);
	var stream = file.OpenAsTextStream(1, 0);
	var content = stream.ReadAll();
	stream.Close();
	return content;
}
function send(url, inputName, filename, content, callBack)
{
	var boundary = "xxxxxxxxx";
	var body = "--" + boundary + "\r\n";
	body += "Content-Disposition: form-data; name=\"" + inputName + "\"; filename=\"" + filename + "\"\r\n";
	body += "Content-Type: application/octet-stream\r\n\r\n";
	body += content + "\r\n";
	body += "--" + boundary + "--";
	var req = new XMLHttpRequest();
	req.open("POST", url, true);
	req.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
	req.onreadystatechange = function ()
	{
		if (req.readyState == 4)
			if (req.status == 200)
				if (callBack)
					callBack();
	};
	req.send(body);
}
 | 
| 
 Посмотрите тут. Вроде то что вам нужно. | 
| 
 Я пробывал уже этот код. 
function GetBinaryFile(PathToFile)
{
    var stream = new ActiveXObject("ADODB.Stream");
    stream.type = 1;  // Binary mode
    stream.Open();
    stream.LoadFromFile(PathToFile);
    var GetFile = stream.Read();
    stream.Close();
    return GetFile;
}
Но stream.Read() почему то мне ничего не возвращает - мож из-за того что ось win7. | 
| 
 этот объект вроде еще нужно активировать 
function activate() {
	var sh = new ActiveXObject('WScript.Shell');
	var CurrentLevel = sh.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\CurrentLevel");
	var Flags = sh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\{00000566-0000-0010-8000-00AA006D2EA4}\\Compatibility Flags");
	try {
		sh.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\CurrentLevel", "73728", "REG_DWORD");
		sh.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\{00000566-0000-0010-8000-00AA006D2EA4}\\Compatibility Flags", "0", "REG_DWORD");
	}
	catch (e) {
		alert("Ошибка "+e.number+": "+e.description+"\nВозможно у вас нет прав для редактирования реестра или данной директории не существует!");
	}
}
в качестве manual-a 
function GetBinaryFile (PathToFile) {
	try {
		var stream = new ActiveXObject("ADODB.Stream");
		stream.Open();
		stream.Type = 1; // Binary file is encoded
		stream.LoadFromFile(PathToFile);
		
		var XML = new ActiveXObject("Microsoft.XMLDOM");
		var DocElem = XML.createElement("Base64Data");
		DocElem.dataType = "bin.base64";
		DocElem.nodeTypedValue = Stream.Read();
	
		return DocElem.text;
	}
	catch (e) {
		return "Ошибка: "+e.number+" -> "+e.description;
	}
}
 | 
| 
 Спасибо | 
| 
 Ещё можно читать фай по частям если он большой http://www.html5rocks.com/ru/tutorials/file/dndfiles/ Обрабатывать кусочки ф-й base64_encode http://javascript.ru/php/base64_encode и передавать по сети | 
| Часовой пояс GMT +3, время: 07:02. |