2012-05-23 22 views
7

javaを使用して、自分のアプリケーションからリモートサーバー(httpはftpなし)にイメージとtxtファイルをアップロードする必要があります。私のアプリケーションはjsfフレームワークにあります。私は検索しましたが、適切なものは見つかりませんでした。 誰でも私を案内できますか? 実際には、ファイルを特別なフォルダにアップロードする必要があります。 私はファイルをアップロードするための共有パスを持つ2つのアプリケーションを持っているので、これらのファイルにアクセスするために、共有ファイル(画像やテキストなど)を第3のサーバーにアップロードするためにdecidecを使用します。最初のアプリケーションはこのリモートサーバーにファイルをアップロードし、2番目のアプリケーションはファイルをそこから読み取る必要があります。 このソリューションの私の難しい部分は、httpを使ってこの第3のサーバー(実際にはリモートサーバー)にファイルをアップロードすることです。javaを使用してhttpリモートサーバーにファイルをアップロードする方法は?

+0

誰もがあるオブジェクトを取る**間違っ**。あなたの側でmultipart/form-dataリクエストを作成して送信するのではなく、相手側のmultipart/form-dataリクエストを*解析する*が意図されています。 – BalusC

+1

MAYBE質問はより明確にする必要があります。このあいまいな質問で正確な答えを期待しないでください! –

+0

私はファイルをアップロードする共有パスを持つ2つのアプリケーションを持っているので、これらのファイルにアクセスするために、共有ファイル(イメージやテキストなど)を第3のサーバーにアップロードするためにdecidecを使用します。最初のアプリケーションはこのリモートサーバーにファイルをアップロードし、2番目のアプリケーションはファイルをそこから読み取る必要があります。ですから、このソリューションの私の難しい部分は、httpを使ってこの第3のサーバー(実際にはリモートサーバー)にファイルをアップロードすることです。 – zorro6064

答えて

1

httpclientを使用できます。

POSTを使用してファイルを送信します。

2

用途:

 byte[] data = bos.toByteArray();//convert ur file into byte[] 
     HttpClient httpClient = new DefaultHttpClient();//Client 
     HttpPost postRequest = new HttpPost(YOUR_SERVER_URL);//Post Request to specified URL 
     ByteArrayBody bab = new ByteArrayBody(data, "a.txt"); 
     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);// Multipart data 
     reqEntity.addPart("uploadingFile", bab); //adding data to request entity 
     postRequest.setEntity(reqEntity);//adding request entity to post request 
     HttpResponse response = httpClient.execute(postRequest); 
+0

リモートサーバーのURLはどこに追加すればよいですか?あなたのコードでは、 "a.txt"とは何ですか?あなたは私のためにもっと説明できますか? – zorro6064

+0

YOUR_SERVER_URLにur url urlを追加... a.txtは2台のサーバーを送信したファイル –

+0

私はあなたのコードを使用しましたが、何も動かず例外もスローされません。私を導くことができますか?上記のコードでは何も変更していません。おかげで – zorro6064

6

は、特定のフォルダにファイルをアップロードするには、サーバーのAPIはそれをサポートしている必要があります。

サーバー側アップロードされたファイルを受信するために、あなたはファイルのアップロード要求を送信するためhttp://commons.apache.org/fileupload/

クライアント側を使用することができ、あなたの要件ごとにhttps://hc.apache.org/httpcomponents-client-ga/index.html

+0

リモートサーバー上の特定のフォルダ。私のアプリケーションは私のサーバー上で実行され、ファイルホストは私のアプリケーションが実行される場所ではありません。 – zorro6064

+0

私は言ったように、リモートサーバー/ファイルホストは、HTTP経由でアップロードするときにリモート宛先を指定するAPIを提供する必要があります – gigadot

-3

します、だから、HTTPマルチパートファイルのアップロードは、適切なsolution.Youここからこの上で、さらに情報を得ることができるように思わ10
@Autowired 
ServletContext c; 

またはコモンズは、ファイルを送信するために、ファイルアップロードを示唆している

byte[] bytes = file.getBytes(); 

String UPLOAD_FOLDEdR=c.getRealPath("/images"); 
Path path = Paths.get(UPLOAD_FOLDEdR +"/"+ file.getOriginalFilename()); 
Files.write(path, bytes); 
System.out.println(path); 
String Pic_Name =file.getOriginalFilename(); 
+1

あなたの答えを編集して意味が分かりますか?現在のところ、コードは読みにくいので、これが問題の解決方法を明確にしていません。あなたの答えをより良く説明してください。 – melwil

関連する問題