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