- - PR -
アプレットからPHPの起動
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-05-15 18:22
こんにちは、Makiです。
JAppletにロード済みの画像ファイルをサーバから削除させようと考えています。 アプレットからファイルを削除するためのPHPを起動させたいのですがうまくいきません。 phpの内容は単純にunlink()でファイルを削除させるものです。 try { URL url = new URL("http://www.sample.jp/dispose.php"); url.openConnection(); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); huc.setRequestMethod("GET"); huc.disconnect(); } catch (MalformedURLException me) { } catch (IOException ie) { } この様に書いてみたのですがファイルは残ったままです。 単純にファイルを削除する為のPHPを起動させる方法を是非教えてください。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-05-17 04:18
openConnection()しただけでは、ダメです。
HttpURLConnection の仕様からは、どの時点でHTTPリクエストが発行されるか 明確ではありませんが、getInputStream() してやらないといけないのでは? | ||||
|
投稿日時: 2004-05-17 11:49
coasmさん、ご回答ありがとうございます。
CGIを起動させてデータのやり取りをするようなパターンではなく、 単純に画像ファイル削除用のPHPを起動させたいので、 敢えてI/Oの関係は記述しませんでした。 getInputStream()を早速試してみましたが、やはり削除はされませんでした。 単純にサーバ上の別のプログラムを起動させるということは可能でしょうか。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-05-17 13:01
URLConnectionの動作は、getContent() とか getInputStream() とか
getHeaderFields() 等、HTTPレスポンスを参照する必要のあるメソッドが 最初に呼び出された時点でHTTPリクエストを送るようになっているようです。 したがって、レスポンスの内容が不要な場合でも、I/Oの関係をまったくなくして しまうと、HTTPリクエストが送信されなくなってしまいます。 (getInputStream() した後、readせずにcloseしてしまってもOKのようです) getInputStream()してもダメだったとのことですが、 (1) リクエストがあったことは、webサーバのログに残っていますか? (2) アプレット側で、例外をcatchしていませんか? (3) 署名されていないアプレットは、アプレット(のjarファイル)を置いてあった サーバとしか通信できませんが、その点は大丈夫ですよね? | ||||
|
投稿日時: 2004-05-18 09:20
coasmさん、遅くなりましたが削除できました!!
ありがとうございました。 原因は、.phpにあり、 削除ファイルが存在するフォルダを確認せずにunlink()を使っていました <URLConnectionの動作は、getContent() とか getInputStream() とか <getHeaderFields() 等、HTTPレスポンスを参照する必要のあるメソッドが <最初に呼び出された時点でHTTPリクエストを送るようになっているようです。 <したがって、レスポンスの内容が不要な場合でも、I/Oの関係をまったくなくして <しまうと、HTTPリクエストが送信されなくなってしまいます。 <(getInputStream() した後、readせずにcloseしてしまってもOKのようです) HTTPリクエストとgetInpuStream()の関係がよくわかり、 大変勉強になりました。 これからもうまく活用していきます! 本当にありがとうございました。 | ||||
1
