Re: Как записать бинарник с помощью ADODB.Stream (Javascript)
От: george123321  
Дата: 13.09.12 05:48
Оценка:
Здравствуйте, Nick.O, Вы писали:

NO>Есть такие задачи:

NO>1. Переконвертировать из base64 в бинарные данные с помощью javascript или какой-нибудь библиотеки (пробовал вот эту дурь, но эта библиотека не работает под IE 7-9 так как используются типизированные коллекции Uint8Array и ArrayBuffer, поддержка которых есть только в Хроме, Firefox).
NO>2. Осуществить запись в файл на локальном диске

NO>Код

NO>
NO>var binArray = "89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393";
NO>var stream = new ActiveXObject("ADODB.Stream");
NO>stream.Type = 1;

NO>stream.Open();
NO>stream.Write(binArray);

NO>stream.Flush();
NO>stream.Position = 0;

NO>stream.SaveToFile("c:\\temp\\writetest.pdf", 2);
NO>stream.Close();
NO>


NO>не работает. Выдаёт ошибку "ADODB.Stream: Настройки безопасности данного компьютера запрещают доступ к источнику данных в другом домене". Хотя сайт развёрнут на локальном компьютере и на папку Temp предоставлены все права пользователю Everyone, отключены антивирус и прочая система безопасности.


NO>Есть у кого-нибудь опыт конвертации в javascript и работы с ADODB.Stream?



Ответ:
День добрый. Вчера столкнулся с подобной проблемой. Вот как я решил её. Необходимо правильно настроить ActiveX браузера, для того чтобы код JS мог сделать необходимые операции.
Настройка:
1. Сервис \ Настройки обозревателя, закладка «Безопасность». Там необходимо в доверенных узнал прописать ссылку на сервис, к которому обращаетесь.
2. Там же по кнопке Другое нужно сделать следующее:
— в разделе Разное:
Доступ к источникам данных за пределами домена — Включить
Включить элементы ActiveX.
Тогда у Вас должно заработать.
Проблема кроется именно в настройках браузера работы с ActiveX.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.