春クラウド装うファイル転送/アップロード

今日装う転送ファイル背景アップロード機能の実現には、それが実装プロセスを記録ので、問題となっていた、ローカルコードに特別な注意を払う必要が赤くマーク。

この機能は、サービス、クライアントにコードの背後にあります:

  フロントページには、クライアントサービス側のインターフェースを呼び出すクライアント・インターフェースを呼び出し、

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> 
       </依存関係>

おすすめ

転載: www.cnblogs.com/hxwhero/p/12084574.html