|
Отправка zip файла post запросом из 1С на сайт при помощи COMОбъект("MSXML2.XMLHTTP")
| ☑ |
0
dimm7310
07.02.19
✎
11:12
|
В данный момент для разных версий 1С (7.7 - 8.Х) написаны обработки выгрузки данных на сайт. Данные выгружаются в формате Json.
По всех версиях отправка производится:
XMLHttp = Новый COMОбъект("MSXML2.XMLHTTP");
XMLHttp.Open("POST",АдресURL+ТипЗапроса+ПараметрыЗапроса,"false");
XMLHttp.SetRequestHeader("Content-Type", "application/json");
XMLHttp.Send(ТекстЗапроса); // json
Встала задача отправлять zip файлы.
Есть примеры отправки файлов этим же способом?
|
|
1
trad
07.02.19
✎
12:20
|
Адрес = ";;
Файл = "C:\1.zip";
Stream = СоздатьОбъект("ADODB.Stream");
Stream.open();
Stream.loadFromFile(Файл);
Http = СоздатьОбъект("Msxml2.ServerXMLHTTP");
Http.open("POST", Адрес, 0);
Http.setRequestHeader("Content-Type", "application/zip");
Http.send(Stream);
Сообщить(Http.status);
|
|
2
trad
07.02.19
✎
12:35
|
вместо Msxml2.ServerXMLHTTP можно тот же Msxml2.XMLHTTP - без разницы
|
|
3
dimm7310
07.02.19
✎
12:42
|
спасибо попробую
|
|
4
dimm7310
07.02.19
✎
14:18
|
(1) Админ говорит, что ничего не получил, это точно рабочий код?
|
|
5
trad
07.02.19
✎
14:52
|
Http.status ?
|
|
6
trad
07.02.19
✎
15:15
|
(4) и ты уверен, что админ хочет получить файл по http, а не по ftp?
|
|
7
dimm7310
07.02.19
✎
15:23
|
(5) 200
(6) уверен (речь шла о доработке Post запроса)
|
|
8
Сияющий в темноте
07.02.19
✎
15:25
|
Чтобы получили файл,нужно посылать данные формы,а в них уже файл,то есть добавить немного в заголовке и хвосте файла,а также не забыть,что у файла есть имя.
код,приведенный выше фигачит файл в данные post запроса,и его даже можно получить в переменной RawPostData.
|
|
9
trad
07.02.19
✎
15:42
|
такой код на сервере:
<?php
print_r(stream_get_contents(fopen('php://input', 'r')));
?>
- показывает что код рабочий и в теле http-запроса есть те данные что отправлены клиентом
|
|
10
trad
07.02.19
✎
15:47
|
Любой http запрос это всего лишь некоторые заголовки и тело.
Кодом в (1) показано, как любой двоичный файл послать в тело запроса.
А какими его снабдить при этом заголовками, это исключительно договоренность принимающей и отправляющей сторон.
|
|
11
Сияющий в темноте
07.02.19
✎
23:28
|
Есть существенная разница-получить файл или получить содержимое файла.
|
|
12
France
08.02.19
✎
02:03
|
(11) а не проще вообще этим не заморачиваться?
|
|
13
trad
08.02.19
✎
08:04
|
(11) конечно есть
Но, мне например, не очевидно, что на самом деле требуется по задаче
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший