Witam,

mam problem z wlasciwa konfiguracja webservisu soap. Uzywam Zend_Soap_Service.

Jedna z metod ma zwracac plik pdf jako dano binarne

i tu pojawia sie problem, poniewaz jak wiadomo w php nie ma zmiennej typu byte, byteArray, binary.
base64_encode i pack zwracaja stringi. W dockBlocku dalem wiec mixed

Moja metoda w klasie parsowanej przez Zend_Soap_Service wyglada nastepujaco:


  1. /**
  2. * Zwraca raport Pdf
  3. *
  4. * @param int $id
  5. * @return mixed
  6. */
  7. public function GetReportPdf($id)
  8. {
  9. $url = PDF_PATH.'/test.pdf';
  10. $fp = fopen($url, "r");
  11. $data = fread($fp, filesize($url));
  12. return new SoapVar(base64_encode($data), XSD_BYTE);
  13. }


Wsdl widzi to w ten sposob

  1. <message name="GetReportPdfOut">
  2. <part name="return" type="xsd:anyType"/>
  3. </message>


Niestety client soapowy utworzony w .Net na zwrotce z tej metody ma "0" .... sad.gif

nie wiem co robie nie tak... teoretycznie w wsdl na zwrotce powinno byc "xsd base64binary