web-dev-qa-db-ja.com

Javaを使用してhttpリモートサーバーにファイルをアップロードする方法は?

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

7
zorro6064

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

アップロードされたファイルを受信するためのサーバー側では、 http://commons.Apache.org/fileupload/ を使用できます。

ファイルアップロードリクエストを送信するためのクライアント側では、 https://hc.Apache.org/httpcomponents-client-ga/index.html を使用できます。

6
gigadot

Apacheを見てください commons-fileupload 。サンプルコードを見つけることができます ここ

3
HashimR

次のコードを使用します。

        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); 
2
P Srinivas Goud

要件に応じて、複数の画像とテキストファイルを送信する必要があります。したがって、HTTPマルチパートファイルのアップロードが適切なソリューションのようです。これについての詳細は ここ から入手できます。

0
user1157934

HttpClientを使用できます。

メソッドとしてPOSTを使用してファイルを送信します。

0
Subir Kumar Sao