springboot+knife4j+swagger3 ファイルアップロードドメインをアップロードできません

springboot+knife4j+swagger3 ファイルアップロードドメインをアップロードできません

1 問題となる現象

springboot、knife4j、および swagger3 の統合後、swagger 上のファイル アップロード インターフェイスのアップロード ドメインをエクスポートできず、デバッグを実行できません。コードは次のとおりです。

    @PostMapping(value = "/upload")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    public ApiResult<UploadInfoVo> upload(MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }

Swagger ページにはパラメーター情報がありません。
画像.png
画像.png

2つのソリューション

@RequestPart アノテーションは次のように使用できます。

    @PostMapping(value = "/upload")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    public ApiResult<UploadInfoVo> upload(@RequestPart("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }

swaggerでのページは以下の通りで、デバッグページのアップロードドメインは公開されています。
画像.png
画像.png

@ApiImplicitParam アノテーションを追加する場合は、それを試した後、dataTypeClass を有効に設定する必要があります。コードは以下のように表示されます:

    @PostMapping(value = "/upload")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    @ApiImplicitParam(name = "uploadFile", value = "上传的文件", dataType = "_File", dataTypeClass = MultipartFile.class, required = true)
    public ApiResult<UploadInfoVo> upload(@RequestPart("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }

スワッガーページは次のとおりです。
画像.png
画像.png

3つの失敗例

次の場合は、有効にならない場合があります。次の場合、Swagger デバッグ ページにはパラメータ情報がありません。

    @PostMapping(value = "/upload", headers = "Content-Type=multipart/form-data")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    public ApiResult<UploadInfoVo> upload(@RequestParam("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }
    @PostMapping(value = "/upload", headers = "Content-Type=multipart/form-data")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    @ApiImplicitParam(name = "uploadFile", value = "上传的文件", dataType = "_File", required = true, paramType = "query")
    public ApiResult<UploadInfoVo> upload(@RequestParam("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }
    @PostMapping(value = "/upload")
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    @ApiImplicitParam(name = "uploadFile", value = "上传的文件", dataType = "_File", required = true, paramType = "query")
    public ApiResult<UploadInfoVo> upload(@RequestParam("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }

以下の場合、アップロードファイルのリクエストパラメータは表示されますが、ファイルを選択するボタンは表示されません。

@PostMapping(value = "/upload", headers = "Content-Type=multipart/form-data", consumes = {
    
    MediaType.MULTIPART_FORM_DATA_VALUE})
    @ApiOperation(value = "文件上传接口", notes = "文件上传接口")
    @SysLog(value = "文件上传", type = LogTypeEnum.UPLOAD)
    @ApiImplicitParam(name = "uploadFile", value = "上传的文件", dataType = "File", required = true, paramType = "query")
    public ApiResult<UploadInfoVo> upload(@RequestPart("uploadFile") MultipartFile uploadFile) throws Exception {
    
    
        return ApiResult.ok();
    }

画像.png

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46505978/article/details/129481908
conseillé
Classement