- PR -

JavaからPHPへのデータ送信方法について

1
投稿者投稿内容
ゆう
会議室デビュー日: 2004/09/06
投稿数: 3
投稿日時: 2004-09-06 13:48
はじめまして。
まだJavaをはじめて2ヶ月程度の学生です。
現在、Javaアプレットからイメージデータを送信し、PHP側で受信、保存というプログラムをつくろうとしています。

しかし、うまくJavaアプレットからPHPを起動させることが出来ず、行き詰まっています。

似たような質問が、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=11595
にあったのですが、よく分からなかったため、書き込ませていただきました。

現在は以下のようなソースを書いています。


BufferdImage bi;
try{
Iterator writers=ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer=(ImageWriter)writers.next();
URL url=new URL("http://sample.ne.jp/imagesave.php");
HttpConnection urlc=(HttpURLConnection)url.openConnection();
urlc.setRequestMethod("POST");
OutputStream os=urlc.getOutPutStream();
InputStream is=urlc.getInputStream();
ImageOutputStream ios=ImageIO.createImageOutputStream(os);
writer.setOutput();
Writer.write(bi);
ios.close();
is.close();
} catch(Exception e){
return false;
}
return true;

エラーは出ませんが、PHPが呼び出された形跡がありません。
どなたか、分かる方がおられましたら、アドバイスしていただければと思います。
よろしくお願いします。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-09-06 14:24
ゆうさん、こんにちは。

URLConnectionで POSTするときは、

1.setDoOutput()を行い、
2.出力したあと、
3.出力を flush()し、出力のみ close
4.サーバからの応答を受信し
5.入力を close

します。(だったと思います。今詳しく確かめる時間ないので
曖昧で申し訳けありません。)

# 私の説明 HttpURLConnectionの例でないですが。
# setOutputの引数漏れは、単なるタイプミスですね。

[ メッセージ編集済み 編集者: Kissinger 編集日時 2004-09-06 14:27 ]
ゆう
会議室デビュー日: 2004/09/06
投稿数: 3
投稿日時: 2004-09-06 16:27
返信ありがとうございます。

引用:

URLConnectionで POSTするときは、

1.setDoOutput()を行い、
2.出力したあと、
3.出力を flush()し、出力のみ close
4.サーバからの応答を受信し
5.入力を close

します。



ご指摘のとおりやってみたところ、
PHPを起動させることができました。
ただ、データはうまく読み取れてないようです。
PHP側では単に、
バイナリモードで読み込み、バイナリモードで書き込むという処理しかやっていません。
受信側の問題ということも考えられますが、
送信側に考えられる可能性としては、どのようなものがあるのでしょうか?

ゆう
会議室デビュー日: 2004/09/06
投稿数: 3
投稿日時: 2004-09-06 17:28
自己解決しました。

どうやら、データを送るためには、

1.OutputStreamを開く
2.出力する
3.InputStreamを開く
4.出力をflush()する
5.出力をclose()する
6.サーバからの応答を受信
7.入力をclose()する

という順番で行えば良いようです。
順番を変えたら成功したというのが少しショックでした(笑
1

スキルアップ/キャリアアップ(JOB@IT)