私は、PHP と Web サービスの両方が初めてです。ファイルを Web サービスに送信する必要がありますが、正しい方法が見つかりません。WS は、次のような Java コードから変数 (dh) としてファイルを取得しています。
QName qnameAttachment = new QName("xsd:ASCII");
call.registerTypeMapping(DataHandler.class, qnameAttachment, JAFDataHandlerSerializerFactory.class, JAFDataHandlerDeserializerFactory.class);
DataHandler dh = new DataHandler(new FileDataSource(this.idh));
次に、dh 変数が WS に送信され (SOAP 呼び出し)、WS は次の XML タグを生成します。
<dh href="cid:2643CE40EEF7B2F167ED283AE8BC6326" xsi:type="xsd:ASCII"/>
私は今、同じことができるPHPでコードを書こうとしていますが、正しい解決策が見つかりません。「base64_encode」関数を使用してファイルをエンコードしようとしました:
$dh = base64_encode($tarfile);
$dh は、「cnwicubnweiv87723re2」のような値を想定しています。次に、 $dh 変数を通常の文字列として WS に渡そうとしましたが、これが結果です。
<dh> cnwicubnweiv87723re2 </dh>
WS は変数をタグの属性として認識しません。$dh を通常の文字列として送信するのは明らかに間違っており、属性として使用することを WS に知らせるためにそれを渡す方法がわかりません。
誰か助けてくれませんか?