<?php /* *Upload файла на удаленный сервер через socket *автор: nc_soft *28.08.07 */ //генерация разделителя $boundary = md5(time()); //отправляем файл (например example.jar ) //имя пересылаемого файла $file_name = 'example.jar'; //MIME тип пересылаемого файла $application = 'application/java-archive'; //запись в переменную $bufer = file_get_contents('./example.jar'); $form_file_name = 'file1'; //это имя у поля формы <input type="file" name="******"> //формируем тело запроса $post_str = ''; $post_str .= "--$boundary\r\n"; $post_str .= "Content-Disposition: form-data; name=\"$form_file_name\"; filename=\"$file_name\"\r\n"; $post_str .= "Content-Type: $application\r\n"; $post_str .= "Content-Transfer-Encoding: binary\r\n\r\n"; $post_str .= "$bufer\r\n"; $post_str .= "--$boundary--\r\n"; //сайт $host = 'site.ru'; //обработчик формы $path = 'handler.php'; //открываем сокет $fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10); if (!$fp) { die($errstr.':'.$errno); } else { $header = "POST $path HTTP/1.0\r\n"; $header .= "Host: $host\r\n"; //указываем что это пост данные с вложенным файлом $header .= "Content-Type: multipart/form-data; boundary=$boundary\r\n"; $header .= "Content-Length: ".strlen($post_str)."\r\n\r\n"; //посылаем данные fwrite($fp, $header.$post_str); $headers=''; //читаем заголовки while ($str = trim(fgets($fp, 4096))) $headers .= "$str\n"; $body=''; //читаем ответ while (!feof($fp)) $body.= fgets($fp, 4096); //закрываем сокет fclose($fp); } //выводим данные echo $headers.'<hr/>'.$body; ?>