|
http сервисы отправка файлов |
☑ |
0
ilya Nikolaevich71
12.10.16
✎
14:36
|
добрый день. платформа 8.3.8. Нужно реализовать отправку файлов в формате пдф из 1с, по обращению к моему сервису.
Я формирую табличный документ, сохраняю ее на диске и пытаюсь отправить. ни файл ни ответ никакой неприходит. файл я запихиваю в двоичные данные и устанавливаю в тело ответа.
может ктото делал? подскажет?
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Length", МояКартинка.Размер());
Ответ.Заголовки.Вставить("Content-Disposition","form-data; name=""AttachedFile1""; filename=""1.pdf""");
|
|
1
Amfiaray
12.10.16
✎
14:40
|
Вот так работает:
HTTPОтвет = Новый HTTPСервисОтвет(200);
Таб = Новый ТабличныйДокумент;
ИмяФайла = ПолучитьИмяВременногоФайла(".pdf");
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
ДД = Новый ДвоичныеДанные(ИмяФайла);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("invoice");
ЗаписьXML.ЗаписатьАтрибут("binary", Base64Строка(ДД));
ЗаписьXML.ЗаписатьКонецЭлемента();
СтрокаXML = ЗаписьXML.Закрыть();
HTTPОтвет.УстановитьТелоИзСтроки(СтрокаXML);
Возврат HTTPОтвет;
|
|
2
ilya Nikolaevich71
12.10.16
✎
14:47
|
Amfiaray - спасибо за ответ.
тоесть мне вернется строка хмл с кучей символов? я просто даже протестить не могу, я то ожидаю увидеть файлик на скачивание, как на обычных сайтах! или такой возможности нет?
|
|
3
Amfiaray
12.10.16
✎
14:52
|
Есть.
Там кажется вроде так надо:
HTTPОтвет = Новый HTTPСервисОтвет(200);
Таб = Новый ТабличныйДокумент;
ИмяФайла = ПолучитьИмяВременногоФайла(".pdf");
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
HTTPОтвет.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанные(ИмяФайла));
Возврат HTTPОтвет;
|
|
4
Stepa86
12.10.16
✎
14:57
|
я вот так xlsx отдаю
таблДок = _ВебСервисыВызовСервера.ПрайсЛистВТабличныйДокумент();
имяФайла = ПолучитьИмяВременногоФайла( "xlsx" );
таблДок.Записать( имяФайла, ТипФайлаТабличногоДокумента.XLSX );
двДанные = Новый ДвоичныеДанные( имяФайла );
УдалитьФайлы( имяФайла );
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзДвоичныхДанных( двДанные );
// заставляем браузер показать окно сохранения файла
Ответ.Заголовки.Вставить("Content-Type", "application/xlsx");
Ответ.Заголовки.Вставить("Content-Disposition", "attachment; filename=" + КодироватьСтроку( "Price.xlsx", СпособКодированияСтроки.КодировкаURL));
|
|
5
ilya Nikolaevich71
12.10.16
✎
15:20
|
спасибо большое, очень много времени сэкономили.
тема закрыта
|
|