今日装う転送ファイル背景アップロード機能の実現には、それが実装プロセスを記録ので、問題となっていた、ローカルコードに特別な注意を払う必要が赤くマーク。
この機能は、サービス、クライアントにコードの背後にあります:
フロントページには、クライアントサービス側のインターフェースを呼び出すクライアント・インターフェースを呼び出し、
1. FileControllerサーバインタフェース:
(値= "/ uploadImageSingle"、メソッド= @RequestMapping RequestMethod.POST) 公衆 BaseDataResp uploadImage(@RequestParam(値= "ファイル" )MultipartFileファイル){ BaseDataResp RESP = 新しいBaseDataResp(); してみてください{ 場合(file.isEmpty()){ リターンBaseDataResp.fail(IGowResultCode.Commons.ERROR_PARAMETER)。 } ArrayListの <ストアのパス>リスト= 新しいArrayListを(); セット <メタデータ> metaDataSet = 新しいHashSetの(); ストアのパスストアのパス = この .client.uploadImage(新しいFastImageFile(file.getInputStream()、file.getSize()、FileUtil.getSuffix(file.getOriginalFilename())、metaDataSet))。 resp.setData(ストアのパス)。 } キャッチ(例外e){ ExceptionLogUtil.debugOrError(ログ、E、e.getMessage() + e.getMessage()); } resp.setCode(IGowResultCode.Commons.SUCCESS)。 リターンRESP。 }
2.メインクライアントインターフェイスの実装コード:
TSystemFiles uploadFileプライベート(CommonsMultipartFileファイル)例外{スロー
400人の参加者は、異常報告ファイルの変換に渡される//必要性を、直接転送
DiskFileItem fileItem =(DiskFileItem)新しいDiskFileItemFactory()。createItem( "ファイル"、 MediaType.ALL_VALUE、真、file.getOriginalFilename()); 入力ストリーム入力 = file.getInputStream()。 OutputStreamのOS = fileItem.getOutputStream()。 IOUtils.copy(入力、OS)。 MultipartFileマルチ=新しいCommonsMultipartFile(fileItem)。 // アップロードファイル BaseDataResp RESP = fileClient.uploadFile(マルチ);
(もし!IGowResultCode.Commons.SUCCESS.equals(resp.getCode())){
新しいUserException(IGowResultCode.Commons.ERROR_UNKNOWN)を投げます。
}
}
FileClient:
@PostMapping(値= "/ファイル/サーバ/ uploadImageSingle"、消費= {MediaType.MULTIPART_FORM_DATA_VALUE}、生産= {MediaType.APPLICATION_JSON_UTF8_VALUE}) BaseDataResp uploadFile(@RequestPart(値 = "ファイル"、必要= 偽)MultipartFileファイル)。
WebConfig:
@Bean 公共エンコーダmultipartFormEncoder(){ リターン新しいSpringFormEncoder(新しいSpringEncoder(新規のObjectFactory <HttpMessageConverters>(){ @オーバーライド 公共HttpMessageConvertersのgetObject()はBeansExceptionを{スロー 新しいHttpMessageConverters(新返す。RestTemplate()getMessageConvertersを()); } }))。 }
Mavenのjarファイルの引用:
<依存> <groupIdを> io.github.openfeign.form </ groupIdを> <たartifactId>装う-フォーム</たartifactId> <バージョン> 3.0.3 </バージョン> </依存関係> <依存> <groupIdを> io.github.openfeign.form </ groupIdを> <たartifactId>装う-形スプリング</たartifactId> <バージョン> 3.0.3 </バージョン> </依存関係> <依存> <groupIdを>コモンズ-ファイルアップロード</ groupIdを> <たartifactId>コモンズ-ファイルアップロード</たartifactId>
</依存関係>