背景:サードパーティ製のシステムやファイルシステムに転送され、フロントエンドのアップロード写真、舞台裏受け、。
瓶包
<依存性> <のgroupId> org.apache.httpcomponents </のgroupId> <たartifactId> HTTPClientの</たartifactId> <バージョン> 4.5.5 </バージョン> </依存> <依存性> <のgroupId> org.apache.httpcomponents </ groupId> <たartifactId> httpmime </たartifactId> <バージョン> 4.5 </ version>の </依存関係>
シンプルコード:
輸入org.springframework.stereotype.Controller; 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.ResponseBody。 輸入org.springframework.web.multipart.MultipartFile; 輸入org.springframework.web.multipart.MultipartHttpServletRequest; インポートのjavax.servlet.http.HttpServletRequest; 輸入java.util.HashMapを; 輸入java.util.Map; @Controller @RequestMapping( "ファイル" ) パブリック クラスFileController { @RequestMapping(値 = "アップロード" ) @ResponseBody 公共 ボイドアップロード(HttpServletRequestのリクエスト){ 試み{ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)要求。 MultipartFile coverFile = multipartRequest.getFile( "ファイル" ); 文字列のURL = "" ; 地図 <文字列、文字列> textMap = 新しい HashMapの<> (); HttpUtil.httpClient(URL、textMap、coverFile.getName()、coverFile.getInputStream()); } キャッチ(例外e){ System.out.printlnは(E); } } }
インポートにjava.io.IOException; 輸入java.io.InputStreamを。 輸入java.util.Map; 輸入java.util.Map.Entry; 輸入org.apache.http.HttpResponse。 輸入org.apache.http.client.ClientProtocolException。 輸入org.apache.http.client.HttpClient; 輸入org.apache.http.client.methods.HttpPost; 輸入org.apache.http.entity.ContentType。 輸入org.apache.http.entity.mime.HttpMultipartMode。 輸入org.apache.http.entity.mime.MultipartEntityBuilder。 輸入org.apache.http.impl.client.DefaultHttpClient; インポートorg.apache.http.util.EntityUtils; パブリック クラスHttpUtil { パブリック 静的文字列のHttpClient(文字列のURL、地図<文字列、文字列> textMap、 文字ファイル名、入力ストリームInputStreamが)スローClientProtocolException、IOExceptionが{ HttpClientをコンテキスト = 新しいDefaultHttpClient()。 HttpPostポスト = 新しいHttpPost(URL); MultipartEntityBuilderビルダー = MultipartEntityBuilder.create()SETMODE(HttpMultipartMode.RFC6532)。 // MultipartEntityBuilderビルダー= MultipartEntityBuilder.create(); ために(エントリ<文字列、文字列> PARAM:textMap.entrySet()){ builder.addTextBody(param.getKey()、param.getValue()、ContentType.TEXT_PLAIN)。 } builder.addBinaryBody( "ファイル" 値、INPUTSTREAM、ContentType.MULTIPART_FORM_DATAファイル名)。 post.setEntity(builder.build())。 HttpResponse応答 = context.execute(POST)。 文字列の再 = 新しい文字列(EntityUtils.toByteArray(response.getEntity())); 戻り再; } }