|
Поместить файл во временное хранилище на веб-клиенте | ☑ | ||
---|---|---|---|---|
0
zzhiraf
22.02.12
✎
09:17
|
Как поместить файл на веб-клиенте во временное хранилище (передать на сервер)?
|
|||
1
el-gamberro
22.02.12
✎
09:18
|
Глобальный контекст.ПоместитьВоВременноеХранилище (Global context.PutToTempStorage)
Глобальный контекст (Global context) ПоместитьВоВременноеХранилище (PutToTempStorage) Синтаксис: ПоместитьВоВременноеХранилище(<Данные>, <Адрес>) Параметры: <Данные> (обязательный) Тип: Произвольный. Данные, которые необходимо поместить во временное хранилище. <Адрес> (необязательный) Тип: УникальныйИдентификатор; Строка. Адрес во временном хранилище, по которому надо поместить данные. Или уникальный идентификатор формы, во временное хранилище которой, надо поместить данные и вернуть новый адрес. В случае, если передается УникальныйИдентификатор формы, то значение будет автоматически удалено после закрытия этой формы. Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы. Возвращаемое значение: Тип: Строка. Если в параметре <Адрес> указан уникальный идентификатор формы, то после помещения значения во временное хранилище формы, возвращает адрес. Данные возвращаются только после того, как фоновое задание будет завершено. Описание: Сохраняет сериализуемое значение во временное хранилище. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Вызов метода выполняет обращение к серверу. Примечание: Также позволяет поместить данные из фонового задания в родительский сеанс. Для этого следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание. |
|||
2
el-gamberro
22.02.12
✎
09:19
|
ДвоичныеДанные (BinaryData)
На основании файла Синтаксис: Новый ДвоичныеДанные(<ИмяФайла>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Имя файла, из которого будет загружено значение в виде двоичных данных Описание: Создает объект и помещает в него двоичные данные, взятые из файла. В режиме веб-клиента недоступен. Пример: ФайлКартинки = "C:\Мои документы\Картинка1.bmp"; ДвоичныеДанные = Новый ДвоичныеДанные(ФайлКартинки); |
|||
3
zzhiraf
22.02.12
✎
09:19
|
ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)
<Данные> это что? |
|||
4
el-gamberro
22.02.12
✎
09:20
|
(3) см (2)
|
|||
5
zzhiraf
22.02.12
✎
09:20
|
ДвДанные = Новый ДвоичныеДанные(ИмяФайла)
Конструктор на веб-клиенте не определен. |
|||
6
zzhiraf
22.02.12
✎
09:21
|
(2) "В режиме веб-клиента недоступен. " :)
|
|||
7
zzhiraf
22.02.12
✎
09:22
|
ПоместитьФайл() - работает только интерактивно...
|
|||
8
el-gamberro
22.02.12
✎
09:28
|
(7) не только
|
|||
9
zzhiraf
22.02.12
✎
09:31
|
(8) в веб-клиенте только интерактивно
|
|||
10
wald
22.02.12
✎
09:33
|
&НаКлиенте
Процедура ЗагрузитьФайлСДиска(Команда) АдресВХранилище = ""; ВыбранноеИмяФайла = ""; Если ПоместитьФайл(АдресВХранилище, , ВыбранноеИмяФайла , , УникальныйИдентификатор) Тогда Файл = Новый Файл(ВыбранноеИмяФайла); ИмяФайла = Файл.Имя; СсылкаНаФайлВоВременномХранилище = АдресВХранилище; Модифицированность = Истина; КонецЕсли; Объект.ИмяФайла = ИмяФайла; КонецПроцедуры |
|||
11
wald
22.02.12
✎
09:35
|
А перед записью на сервере:
//Получить файл Если ЭтоАдресВременногоХранилища(СсылкаНаФайлВоВременномХранилище) Тогда ДвичныеДанные = ПолучитьИзВременногоХранилища(СсылкаНаФайлВоВременномХранилище); ТекущийОбъект.Хранилище = Новый ХранилищеЗначения(ДвичныеДанные, Новый СжатиеДанных(9)); ТекущийОбъект.ИмяФайла = ИмяФайла; КонецЕсли; |
|||
12
zzhiraf
22.02.12
✎
09:37
|
(10) см (7),(9)
|
|||
13
zzhiraf
22.02.12
✎
09:43
|
В этой теме приводятся примеры того, что мне нужно v8: У кого нибудь есть готовый вариант кодирования/декодирования BASE64?
Проблема в том что на веб-клиенте это не работает... Строка = КодироватьМассивБайтовВСтроку6Бит(objHTTP.responseBody.Выгрузить()); Двоичные = Base64Значение(Строка); Здесь метод Выгрузить() не работает set helper = CreateObject("MSXML2.DomDocument.3.0").createElement("a") helper.DataType = "bin.base64" helper.nodeTypedValue = safeArray toBase64 = helper.text Здесь затык на helper.DataType = "bin.base64" |
|||
14
zzhiraf
22.02.12
✎
09:56
|
вот код который сохраняет файл на диск клиента:
Соединение = Новый COMОбъект("Msxml2.XMLHTTP.6.0"); MSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl"); MSScriptControl.Language = "javascript"; Стрим = Новый COMОбъект("ADODB.Stream"); MSScriptControl.AddObject("Стрим",Стрим); MSScriptControl.AddObject("Соединение",Соединение); fso = Новый COMОбъект("Scripting.FileSystemObject"); tfolder = fso.GetSpecialFolder(2); Стрим.Mode = 3; Стрим.Type = 1; Соединение.Open("GET", "путьккартинке", 0, "",""); //Сообщить(СтрокаЗапроса); //Соединение.SetRequestHeader("Content-Type", "image/jpeg"); //Соединение.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1251"); Соединение.Send(); Если (Соединение.readyState = 4) И (Соединение.status = 200) тогда Попытка Стрим.Open(); MSScriptControl.Eval("Стрим.Write(Соединение.responseBody)"); tname = fso.GetTempName(); Стрим.SaveToFile(tfolder.Path + "\" +tname, 2); Стрим.Close(); Исключение Сообщить(ОписаниеОшибки()); Возврат ; КонецПопытки; КонецЕсли; Вопрос как из этого получить ДвоичныеДанные? |
|||
15
БибиГон
22.02.12
✎
09:59
|
(14) этот код где находится? в обработке?
|
|||
16
БибиГон
22.02.12
✎
10:01
|
+ ты сохраняешь файл на диск клиента, что теперь хочешь получить?
|
|||
17
zzhiraf
22.02.12
✎
10:09
|
Код, да, в обработке.
ДвоичныеДанные хочу получить чтоб поместить их во временное хранилище на сервере. Можно и без файла, он не обязателен... Просто пока максимум что удалось - сохранить картинку в файл на диск. |
|||
18
zzhiraf
22.02.12
✎
10:11
|
Вообще же нужно сохранить картинку в базу.
|
|||
19
el-gamberro
22.02.12
✎
11:17
|
(18) посмотри как это реализовано в типовой УТ или упр. небольшой фирмой
|
|||
20
zzhiraf
24.02.12
✎
09:17
|
Получилось)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |