1

こんばんは。

ファイル ストリーミングとして機能する Web サービスを使用する必要があります (ファイル ID を受け取り、ストリーム経由でファイルを返します)。

次に、PHP でこのプロセスを処理する必要があります。私が知る限り、PHP のネイティブ SOAP クライアントにはこれらの機能がないため、これを行う方法に関する解決策を探していました。

バイナリ添付ファイル ( MTOM ) を処理する WSO2 (Web Services Framework for PHP) を見つけました。

まだテストしていませんが、本当の問題は、あなたの経験に基づいて、これらの特性を持つ Web サービスを使用するための最もスマートなアプローチは何でしょうか?

どうぞよろしくお願いいたします。

4

1 に答える 1

2

WSO2 WSF/PHPMTOMは、他の言語がサポートする標準であるファイルストリーミングをより洗練された方法で実行します。

MTOM使用base64したくない場合に実装できるファイルをエンコードするために使用しますWSO2

なぜ必要なのかわからないので、そのファイルのコピーがstreamあればいつでもファイルを開くことができるstreamので、それが最も重要だとは思わないことに注意してください..重要なのはファイルsafelyをサーバーに送信することです

使用例SoapClient

クライアント

ini_set("soap.wsdl_cache_enabled", "0");
$client=new SoapClient(PATH_TO_WSDL,array('encoding'=>'ISO-8859-1'));
$data = file_get_contents(PATH_TO_FILE);
$ret = $client->recieveFile(base64_encode($data));

サーバ

ini_set("soap.wsdl_cache_enabled", "0");

const  PATH_TO_WSDL = "b.php?wsdl" ;
$client=new SoapClient(PATH_TO_WSDL,array('encoding'=>'ISO-8859-1'));
$data = file_get_contents(PATH_TO_FILE);
$ret = $client->recieveFile(base64_encode($data));

非常に大きなファイルの場合、ファイルをチャンクに分割することをお勧めしbase64ます。33%

于 2012-04-11T23:27:40.180 に答える