PHP для использования веб-службы, которая нуждается в xs: base64Binary - PullRequest
0 голосов
/ 15 декабря 2009

У меня есть веб-сервис, который ожидает параметр типа "xs: base64Binary" - это файл для хранения в базе данных.

Я пытаюсь использовать сервис, используя родные классы веб-сервиса PHP 5. Я пробовал несколько вещей:

// Get the posted file
$file = file_get_contents($_FILES['Filedata']['tmp_name']);

// Add the file, encoding it as a base64
$parameters = array("fileBytes" => base64_encode($file));

// Call the webservice
$response = $client->attachFile($parameters); 

В результате появляется ошибка «Неверный запрос». Если файл представляет собой текстовый файл, а я не base64_encode, он работает нормально. Проблема возникает при публикации бинарного файла, такого как изображение.

Кто-нибудь знает трюк здесь?

РЕДАКТИРОВАТЬ 1

Также проблематично то, что если я кодирую текстовый файл, он, кажется, работает, но, конечно, он закодирован и в конечном итоге становится ненужным после загрузки и просмотра (т. Е. Текст закодирован и, похоже, не декодируется сервер).

Ответы [ 2 ]

0 голосов
/ 15 декабря 2009

Хорошо, похоже, нет необходимости использовать base64_encode. Файл file_get_contents уже помещает его в требуемый формат.

Кроме того, проблема заключалась в том, что у меня был слишком низкий параметр конфигурации на стороне сервера для maxArrayLength.

0 голосов
/ 15 декабря 2009

Насколько я знаю, base64_encode() должен делать эту работу. Вы уверены, что $ file содержит что-то? Вы сделали свалку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...