0

サーバーにファイルを送り返すために使用しているJavaアプレットがあります。サーバー側では、これをphpページで受信します。

以下は、送信を行っているJavaコードです。php側では、グローバル配列をチェックし、データはURLで渡されていますが、ファイルデータは渡されていません。私は本当にこれを検索して引っかいたので、助けていただければ幸いです。

String strURL = sendToURL + "?ACTION=POST&LEN=" + imgBytes.length + "&Fname=picture.png";
    try{
        URL urlServlet = new URL(strURL);
        URLConnection sCon = urlServlet.openConnection();
        sCon.setDoInput(true);
        sCon.setDoOutput(true);
        if (sCon.getAllowUserInteraction()) {
            sCon.setAllowUserInteraction(true);
        }
        sCon.setUseCaches(false);
        sCon.setDefaultUseCaches(false);
        sCon.setRequestProperty("Content-Type", "text/html");
        sCon.setRequestProperty("Connection", "Keep-Alive");
        sCon.setConnectTimeout(transferTimeout);
        sCon.setReadTimeout(transferTimeout);
        DataOutputStream out = new DataOutputStream(sCon.getOutputStream());

        int index = 0;
        size = 1024;
        do {
            if (index + size > imgBytes.length) {
                size = imgBytes.length - index;
            }
            out.write(imgBytes, index, size);
            index += size;
        } while (index < imgBytes.length);

        out.write(imgBytes);
        out.flush();
        out.close();

解決済み-よくあることですが、数日間の戦いの後に質問を投稿し、ほんの数分後に解決策が提示されます。

以前にXMLデータを転送するためにcURLを使用したことを思い出したSOAPの使用についてのコメントの後で考えました。数回検索した後、私ははるかに単純で非常にエレガントな解決策に出くわしました。

http://www.lornajane.net/posts/2008/Accessing-Incoming-PUT-Data-from-PHP

基本的に、以下を使用してphpのPUTデータにアクセスできます。

file_get_contents("php://input")

だから今それは素晴らしく動作します

4

1 に答える 1

0

私は何度もSOAPメッセージを使用して、PHPからJavaに正常に機能するデータを取得しました

したがって、PHPをWebサービスとして使用し、SOAPを介して通信します

WSDLファイルを設定する

Javaスタブとスケルトンを生成する http://download.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

WSDLをphpskripthttp://www.php.net/manual/de/book.soap.phpにロードし ます

   $soapClient = new SoapClient("blahblah.wsdl"); 

そして、PHPでロジックを実行します

次に、Javaスタブを使用してサーバーを呼び出し、データを送信します

于 2011-07-20T19:28:06.793 に答える