Привет, ребята, извините за плохое форматирование и спасибо за вашу поддержку.Я постараюсь объяснить лучше в этот раз.У меня есть zip-файл с именем Content_4_2.zip в папке 'C: \ xampp \ htdocs \ drupalTheme'.Этот zip содержит 2 xml файла.Теперь метод веб-службы, которому я хочу передать этот zip-файл, имеет следующее определение:
<soap:Body>
<AddFileToProject xmlns="http://tempuri.org/">
<Ticket>string</Ticket>
<ProjectID>string</ProjectID>
<Filename>string</Filename>
<FileData>base64Binary</FileData>
<SourceLanguageID>string</SourceLanguageID>
<TargetLanguageIDs>
<string>string</string>
<string>string</string>
</TargetLanguageIDs>
<Metadata>
<Meta Name="string" Value="string" />
<Meta Name="string" Value="string" />
</Metadata>
<IsReferenceMaterial>boolean</IsReferenceMaterial>
</AddFileToProject>
</soap:Body>
FileData 'base64Binary' - это содержимое, которое я хочу отправить, т.е. файл zip.В Java я смог преобразовать zip-файл в байтовый массив, и веб-сервис был успешно вызван. Теперь я знаю, что в PHP такого преобразования нет.Итак, мой подход: 1. Получите имя zip-файла из каталога. 2. Передайте содержимое zip в веб-сервис.
Я пробовал это:
$zipFile = 'C:/xampp/htdocs/drupalTheme/Content_4_2.zip';
$zip = zip_open($zipFile);
$addFile = $ServicesLink->AddFileToProject(array('Ticket'=>$ticket,'ProjectID'=>$projectID,'Filename'=>$fileName,'FileData'=> $zip, 'SourceLanguageID'=> $srcLang, 'TargetLanguageIDs'=> $finalTarArray,'Metadata'=> null,'IsReferenceMaterial'=>false));
, и этоappraoch
$zipFile = 'C:/xampp/htdocs/drupalTheme/Content_4_2.zip';
$file = file_get_contents('./Content_4_2.zip',true);
$byteArr = str_split($file);
foreach ($byteArr as $key=>$val) { $byteArr[$key] = ord($val); }
$addFile = $ServicesLink->AddFileToProject(array('Ticket'=>$ticket,'ProjectID'=>$projectID,'Filename'=>$fileName,'FileData'=> $byteArr, 'SourceLanguageID'=> $srcLang, 'TargetLanguageIDs'=> $finalTarArray,'Metadata'=> null,'IsReferenceMaterial'=>false));
Обе приводят к отправке поврежденных почтовых файлов.
Хотели бы, чтобы ваши взгляды были одинаковыми.