|
PHP + 1C | ☑ | ||
---|---|---|---|---|
0
antihacker
26.01.18
✎
20:07
|
Всем привет !
Вот так отправляю ХМЛ файл на сайт имяФайлаОтправки = ПолучитьимяВременногоФайла("xml"); сообщить(имяФайлаОтправки); ОбъектXML = Новый ЗаписьXML; ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8"); ОбъектXML.ЗаписатьОбъявлениеXML(); ОбъектXML.ЗаписатьБезОбработки( "<request> | <user_id>" + 111 + "</user_id> | <post_id>" + 222+ "</post_id> | <message>" + 333 + "</message> |</request>"); ОбъектXML.Закрыть(); // отправим файл на сервер для обработки имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML ФайлОтправки = Новый Файл(имяФайлаОтправки); РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер()); Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "text/html;charset=utf-8"); Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки); попытка Соединение = Новый HTTPСоединение("xxxxx.ru"); Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "register3.php", имяВыходногоФайла, Заголовки); Исключение #Если Клиент Тогда Сообщить("Неудачная попытка отправки: " + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); Если ЗначениеЗаполнено(Соединение) Тогда Сообщить(Символы.Таб + Соединение.КодСостояния, СтатусСообщения.Важное); КонецЕсли; #Иначе ЗаписьЖурналаРегистрации(ИмяОбъекта + ".ОтправитьНаСайт", УровеньЖурналаРегистрации.Ошибка, , , "Неудачная попытка запроса: " + ИнформацияОбОшибке().Описание); #КонецЕсли Соединение = Неопределено; //HTTPЗапрос = Неопределено; Возврат; КонецПопытки; // удалим файл отправки - он больше не нужен Попытка УдалитьФайлы(имяФайлаОтправки); Исключение КонецПопытки; // обработаем ответ сервера ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(имяВыходногоФайла); Пока ЧтениеXML.Прочитать() Цикл // чтение ответа в виде XML файла КонецЦикла; ЧтениеXML.Закрыть(); // удаляем файл после использования Попытка УдалитьФайлы(имяВыходногоФайла); Исключение КонецПопытки; Подключение и отправка идет нормально. Но как теперь это прочесть ХМЛ файл на стороне сайта ? |
|||
1
Остап Сулейманович
26.01.18
✎
20:12
|
||||
2
antihacker
26.01.18
✎
20:24
|
Не совсем понятно. Я то отправляю из 1С ки , а не из формы.
|
|||
3
Остап Сулейманович
26.01.18
✎
20:30
|
(2) Проверь на стороне пыха в твоем register3.php что приходит в $_FILES и что приходит в $_REQUEST. Где-то оно точно будет.
Должно быть в $_FILES. |
|||
4
antihacker
26.01.18
✎
20:37
|
А что если я не знаю имя файла ? Потому что имя файла имя -временного файлаю
|
|||
5
Остап Сулейманович
26.01.18
✎
20:40
|
(4) А тебе и не нужно знать конкретное имя. Тебе нужно знать имя принятого. В $_FILES оно и будет. Если будет ))). Вот с каким пых его получит с таким и обрабатывай.
|
|||
6
antihacker
26.01.18
✎
20:50
|
www = $_FILES['userfile']['name']
www = и есть имя переданного файла ? |
|||
7
Остап Сулейманович
26.01.18
✎
21:20
|
(6) Не обязательно. Массив нужно обойти foreach-ем. Файлов может быть несколько, а может и не быть вообще.
Количество можно проверить count-ом. В общем - обычная обработка массива. Плюс нужно использовать то, что каждый элемент $_FILES есть ассоциативным. И к элементам можно обращаться по имени. Ассоциации описаны здесь : http://php.net/manual/ru/features.file-upload.post-method.php |
|||
8
Остап Сулейманович
26.01.18
✎
21:23
|
+ (7) foreach описан здесь : http://php.net/manual/ru/control-structures.foreach.php.
Короче изучите для начала рекомендуемые РТФМ. В интерпретации лурка : http://lurkmore.to/RTFM |
|||
9
antihacker
26.01.18
✎
21:26
|
Вот так я буду читать
|
|||
10
antihacker
26.01.18
✎
21:26
|
<?php
header('Content-type: text/html; charset=utf-8'); $xml = simplexml_load_file('info.xml'); foreach ($xml->info as $info) { echo $info[id]; echo $info->name; echo $info->text; } >> |
|||
11
antihacker
26.01.18
✎
21:27
|
Как мне заменить info.xml полученным файлом ?
|
|||
12
DrShad
26.01.18
✎
23:31
|
сколько денег? даже не имея профильного, делается легко
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |