0

ファイルを FTP サーバーにアップロードするために使用したい Java アプレットがあります。最も重要なメソッドはアップロード (文字列 ftpServer、文字列 ユーザー名、文字列 パスワード、文字列 filePath、ファイル sourceFile ) です。JS コードでは、input="file" から取得した配列データに保存しました (ユーザーは、以前に作成したさまざまなオブジェクトにファイルを添付および削除できるため、このデータをどこかに保存する必要があります)。

問題は、アップロード関数の呼び出しが sun.plugin2.main.client.MessagePassingJSObject として認識されるときに、ファイル データが JS ファイル オブジェクトによって表されることです (新しい java.io.File オブジェクトを初期化しようとするときも同じです)。

質問は次のとおりです。java.io.Fileと互換性のあるオブジェクトまたはファイルに関するデータ(フルパスのみだと思います)をJavaアプレットに渡すことは可能ですか?

そうでない場合、FileReader で読み取った Java コード ファイルから String に (たとえば、.readAsBinaryString メソッドを使用して) アップロードする方法はありますか?

または、私の問題に対する他の解決策が存在する場合は?

編集:

もう少しコンテキスト:

FTP アップロード アプレットは、canvas 要素 (具体的には fabric.js ライブラリ) を使用するアプリケーションの一部です。キャンバス領域に新しい要素を追加した後、ユーザーは要素を選択し、その要素にいくつかのファイル (任意の画像ファイル) を追加/割り当てることができます。画像をキャンバス領域にロードする必要はありません。特定の要素が選択されたときに、キャンバスの下のリストに画像の名前が表示されるだけです。もちろん取り外しも可能です。

ユーザーが完了したことを確認したら、いくつかのデータをサーバー側に送信 (投稿) して制御ファイルを準備し、このファイルを ftp サーバーにアップロードします。制御ファイルに必要な選択されたファイルに関する唯一の情報はファイル名であるため、アプレットからそのデータを送信するか、JavaScript に渡して送信するよりも、JS コードの代わりにアプレットにファイル チューザーを追加することが可能だと思います。制御ファイル データを送信する前または送信した後、ユーザーが選択したすべてのファイルも ftp サーバーにアップロードする必要があります。

残念ながら、ファイルをキャンバスにロードし、確認後に ftp サーバーにも送信する必要がある場合が 1 つあります - 背景画像ファイルです。

4

1 に答える 1

1

HTML5で作成したArrayBufferをLiveConnect経由でアプレットに渡す方法はわかりませんが、アプレットを使用して( JNLP FileOpenServiceを使用して)Javaファイルチューザーを生成し、ディスクからファイルを読み取ることは可能です(おそらくクロスブラウザー互換性が少し高くなります)。アプレットに署名せずにそれを行うことができます)。

于 2012-09-05T02:50:36.957 に答える