Потратил около часа, чтобы понять, почему при кодировании в base64 и передачи это через SOAP, получатель не может прочитать файл.
Оказалось все просто. SOAP сам упаковывает данные в BASE64 и конструкция
$imgbinary = fread(fopen($data['FormFileBuffer'], "r"), filesize($data['FormFileBuffer'])); $base64File = base64_encode($imgbinary);
оказалась не нужна, достаточно сразу было отдать $imgbinary