Передача файла в SOAP сервис

a_l_e_k_s

Новичок
Здравствуйте!
Есть SOAP сервис на 1C и есть простая форма подачи заявки на php, с передачей текстовых параметров проблем нет, а вот с передачей файла уже сложнее.
У сервиса есть параметр base64Binary

PHP:
<input value="На главную" type="button" onclick="location.href='/lk/index.php'" />

<?php

    header("Content-Type: text/html; charset=UTF-8");

function Connect1C(){
    if (!function_exists('is_soap_fault')){
      print 'Не настроен web сервер. Не найден модуль php-soap.';
      return false;
    }
    try {
      $Клиент1С = new SoapClient('http://127.0.0.1/conf/ws/DataExchange.1cws?wsdl',
                               array('login'          => '',
                                     'password'       => '',
                                     'soap_version'   => SOAP_1_2,
                                     'cache_wsdl'     => WSDL_CACHE_NONE, //WSDL_CACHE_MEMORY, //, WSDL_CACHE_NONE, WSDL_CACHE_DISK or WSDL_CACHE_BOTH
                                     'exceptions'     => true,
                                     'trace'          => 1));
    }catch(SoapFault $e) {
      trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);
      var_dump($e);
    }
    //echo 'Раз';
    if (is_soap_fault(Клиент1С)){
      trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);
      return false;
    }
    return $Клиент1С;
  }
 
function CreateOrder($idc, $id_user, $ordername, $files, $adress, $FIO){
      if (is_object($idc)){
 
        try {
          $par1 = array('zapros' => $id_user);
          $par1 = array('zapros' => $ordername);
          $par1 = array('zapros' => $files);
          $par1 = array('zapros' => $adress);
          $par1 = array('zapros' => $FIO);
          
        
        $par["id_user"]     = $id_user;
        $par["ordername"]     = $ordername;
        $par["files"]         = $files;
        $par["adress"]         = $adress;
        $par["FIO"]         = $FIO;
        
        
        
        
        
          //var_dump($par);
          
          $ret1c = $idc->СоздатьЗаявкуФЛ($par); //$id_user, $ordername, $files, $adress, $FIO
        } catch (SoapFault $e) {
                      echo "АЩИБКА!!! </br>";
            var_dump($e);
        }   
      }
      else{
        echo 'Не удалося подключиться к 1С';
        var_dump($idc);
      }
      
    return "Заявка создана";
    
  }
  




 if (!empty($_POST['ordername'])) 
     
     {
 
  $idc = Connect1C();
  
  $id_user = 1;
  $ordername = $_POST[ordername];
  //$files = $_POST[files];
  $adress = $_POST[adress];
  $FIO = $_POST[FIO];
  
  //if ($_FILES && $_FILES['files']['error']== UPLOAD_ERR_OK)
//{
    //$name = $_FILES['files']['name'];
   // move_uploaded_file($_FILES['files']['tmp_name'], $name);
   // echo "Файл загружен";
//}



    $_FILES['files']['name']=$_POST['files'];
    $filename = basename( $_FILES['files']['name']);
    $file = fopen($filename, "r");
    $handle = fread($file,filesize($filename));
    $files = base64_encode($handle);





  
  $ret1c = CreateOrder($idc, $id_user, $ordername, $files, $adress, $FIO);
  
  //var_dump($ret1c);
  //$aa=$ret1c->return;
  //echo "!!$aa!!";
 
     }
?>

<h3>Создать заявку</h3>
<form action="createorder.php" method="POST">
    
    Наименование: <input type="text" name="ordername" /><br><br>
    ФИО: <input type="text" name="FIO" /><br><br>
    Адрес: <input type="text" name="adress" /><br><br>
    Файл: <input type="file" name="files" /><br><br>
    <input type="submit" value="Отправить заявку">
    
        
</form>
 

a_l_e_k_s

Новичок
Сразу скажу на php вообще не пишу, но вот поставлена простая задача, потому пытаюсь, что-то соорудить. Сильно не ругайте.
 
Сверху