Надо скормить файл обработчику формы. Форма выглядит так: Код (PHP): <html> <meta HTTP-EQUIV="Content-Type" Content="text/html; charset=windows-1251"> <title>Отправка данных в НБКИ</title> </head> <body> <form action="/inout/cgi-bin/upload.cgi" method="POST" ENCTYPE="multipart/form-data"> <table align="center" border=0 cellspacing=0 cellpadding=10 width="430"> <b>ОТПРАВКА ДАННЫХ</b> <tr> <td><font face="verdana" size=2>Отправляемый файл данных:</font></td> <td><input type="FILE" name="file1"></td> <td><input type="hidden" name="pathnm" value="uploads"></td> </tr> <tr> <td><br></td> <td><input type="SUBMIT" value="ОТПРАВИТЬ" style="cursor:hand;"></td> </tr> </table> </form> </body> </html> Мой скрипт выглядит так: Код (PHP): $file = file_get_contents('/path/to/file.txt'); $file = mb_convert_encoding($file, 'Windows-1251', 'UTF-8'); $postdata = array( 'file1' => $file, 'pathnm' => 'uploads' ); $postdata = http_build_query($postdata); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: multipart/form-data', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents('http://example.com/inout/cgi-bin/upload.cgi', false, $context); echo $result; Что я делаю не так? Header ведь такой надо ставить?
А ничего не происходит, я не получаю никакого ответа. Форма не моя, она пренадлежит одной полу-государственной конторе, у которых всё работает по ГОСТам года 95го. Документации по автоматической отправки у них нет, вроде такого раньше никто у них не делал. Вот и попробуй разберись почему их сервер не принимает мой запрос... Я ж всё правильно вроде сделал?
Biopengwin, не думай всерьез, что кто-то будет за тебя отлаживать. Ты пробовал сравнить свой вызов с тем, на который я тебе ссылку дал? Тот рабочий, только параметры подставь свои.
Тут тоже проблемка. Страница открывается только в IE6 и только при наличии необходимых сертификатов.) Ладно, буду перебирать всё подряд.
Не, на сервере с которого я отправляю - всё нормально с сертификатами. Там стоит плагин на Apache, который проксирует запрос куда надо, предварительно его подписав. Но в браузере я не могу открыть эту страницу, чтобы сравнить заголовки. Добавлено спустя 32 секунды: Ну перенесите.) Я топик создал в надежде, что я совсем тупой и где-то допустил банальную ошибку.
Может и так. А может целевой сайт отфутболивает запросы, не соответствующие неизвестным нам критериям. Выясни это. Как в браузере выглядит реакция на неправильный / неполный набор полей? Ну, допустим, если ты файл забыл указать. Имитируй это програмно и посмотри есть ли КАКАЯ-ТО реакция. Когда пишут "ничего не происходит" это сильно подозрительно. Что-то всегда происходит, только смотреть надо внимательно. Ты программер или ты Мариванна из бухгалтерии у которой "всё сломалось"? Отлаживайся. Добавлено спустя 4 минуты 17 секунд: Кстати: Когда мне Хром пишет "неверный клиентский сертификат" я знаю, что это файрвол зарезал запрос https к подозрительному сайту. Может твой файрвол настроен делать для IE6 исключение? Мало данных.