Intereting Posts
МЕНЬШЕ CSS & Symfony – Динамическое изменение цветовых схем Ошибка PHP и MYSQLI, вызов функции-функции члена () для не-объекта Как сгенерировать в PHP все комбинации элементов в нескольких массивах FILTER_VALIDATE_EMAIL делает строку безопасной для вставки в базу данных? Как проверить, имеет ли товар woocommerce какую-либо категорию, назначенную ему? Laravel 5 выполняет агрегирование с помощью mongodb на where clause PHP-код работает только при закрытии коротких открытых тегов Могу ли я определить PHP_INT_SIZE на 4 байта в 64-битной системе, на которой запущен PHP? Perl-эквивалент PHP get_file_contents ()? Электронная коммерция Google с API Google Analytics PHP Загрузка многостраничного изображения на PHP-сервер из приложения iOS Как я могу прочитать файл .tar.gz с PHP? Отладка PDO – просмотр запроса ПОСЛЕ привязки? php проверяет, содержит ли строка значение в массиве Как сохранить номер страницы после перенаправления в CakePHP?

Массив столбчатого байта от PHP до .NET WCF Service

У меня есть служба WCF с методом получения файлов, выглядя что-то вроде этого

 public bool UploadFile(string fileName, byte[] data) { //... } 

То, что я хотел бы сделать, – опубликовать данные в этом методе в службе WCF с PHP, но не подозревает, что даже можно отправлять байтовые массивы из PHP в метод .NET, размещенный службой WCF.

Поэтому я думал о чем-то подобном

 $file = file_get_contents($_FILES['Filedata']['tmp_name']); // get the file content $client = new SoapClient('http://localhost:8000/service?wsdl'); $params = array( 'fileName' => 'whatever', 'data' => $file ); $client->UploadFile($params); 

Будет ли это возможно или есть какие-то общие рекомендации, о которых я должен знать?

Related of "Массив столбчатого байта от PHP до .NET WCF Service"

Догадаться. Официальная документация php сообщает, что file_get_contents возвращает весь файл в виде строки (http://php.net/manual/en/function.file-get-contents.php). Что никто не говорит, что эта строка совместима с .NET bytearray, когда отправляется в службу WCF.

См. Пример ниже.

 $filename = $_FILES["file"]["name"]; $byteArr = file_get_contents($_FILES['file']['tmp_name']); try { $wsdloptions = array( 'soap_version' => constant('WSDL_SOAP_VERSION'), 'exceptions' => constant('WSDL_EXCEPTIONS'), 'trace' => constant('WSDL_TRACE') ); $client = new SoapClient(constant('DEFAULT_WSDL'), $wsdloptions); $args = array( 'file' => $filename, 'data' => $byteArr ); $uploadFile = $client->UploadFile($args)->UploadFileResult; if($uploadFile == 1) { echo "<h3>Success!</h3>"; echo "<p>SharePoint received your file!</p>"; } else { echo "<h3>Darn!</h3>"; echo "<p>SharePoint could not receive your file.</p>"; } } catch (Exception $exc) { echo "<h3>Oh darn, something failed!</h3>"; echo "<p>$exc->getTraceAsString()</p>"; } 

Ура!